MASM将DWORD写入注册表

时间:2013-01-30 13:17:38

标签: assembly masm masm32

我正在尝试将DWORD写入注册表,我喜欢这样:

 WSTR keyvalue,"0"

       invoke RegCreateKeyExW,HKEY_LOCAL_MACHINE,offset keylocation,NULL,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,offset hIDKey,NULL 
      .IF eax==ERROR_SUCCESS
        invoke lstrlenW,offset keyvalue
        add eax,eax
        add eax,2
        invoke RegSetValueExW,hIDKey,offset keyname,NULL,REG_DWORD,offset keyvalue,eax 
        invoke RegFlushKey,hIDKey
        .ENDIF 

keyvalue为0,所以我期望在注册表中为密钥设置为0,而是写入“38”。我做错了什么?

1 个答案:

答案 0 :(得分:1)

字符0是0x38,你保留一个宽字符串WSTR keyvalue),所以它是预期的。您需要dword值0(具有固定大小,因此您不需要_wcslen)。类似的东西:

keyvalue DD 0
....
mov eax,4
....
相关问题