[?]Registros de Windows <.<

Iniciado por Иōҳ, 9 Marzo 2010, 23:54 PM

0 Miembros y 1 Visitante están viendo este tema.

Иōҳ

Hola que tal tengo una duda la verdad, quisiera saber por que no puedo crear un valor dword dentro de varias carpetas la verdad no se que estoy haciendo mal y si alguien me hecha una mano seria genial

Código (asm) [Seleccionar]

.386
.model flat, stdcall
option casemap :none

include windows.inc
include user32.inc
include kernel32.inc
include advapi32.inc

includelib user32.lib
includelib kernel32.lib
includelib advapi32.lib

.data

SubKey db "Software\Microsoft\Windows Live\Messenger",0
Nombre db "Multiple Instances",0

Mensaje db "Carpeta No Encontrada",0
Titulo db "Error",0

.data?
hKey dd ?
Buffer dd ?

.code

Main:

invoke RegOpenKeyEx,HKEY_LOCAL_MACHINE, addr SubKey,0,KEY_ALL_ACCESS,addr hKey
.if al==NULL
invoke MessageBox,NULL,addr Mensaje,addr Titulo,MB_OK + MB_ICONINFORMATION
.else
invoke RegSetValueEx,addr hKey,addr Nombre,0,REG_DWORD,addr Buffer, 1
invoke RegCloseKey,addr hKey
.endif

invoke ExitProcess,0



End Main


y como la imagen vale mas que mil palabras

esto es lo que quiero hacer



y porsupesto darle un valor

Eres adicto a la Ing. Inversa? -> www.noxsoft.net

Eternal Idol

#1
A RegSetValueEx  y RegCloseKey les tenes que pasar el HANDLE y no un puntero al mismo. El ultimo parametro de RegSetValueEx es "The size of the information pointed to by the lpData parameter, in bytes." y le estas pasando 1, pasale el tamaño de un DWORD (4 bytes). El anterior es el buffer, donde tenes que poner el DWORD que queres escribir ... no tiene que ser un valor indefinido.

Otra cosa, RegOpenKeyEx:
Return Value
If the function succeeds, the return value is ERROR_SUCCESS.

ERROR_SUCCESS es 0 asi que estas haciendo la comparacion mal.

PD. Son claves del registro no carpetas.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón