1

アプリケーションの自動起動を書いていますが、再起動する前にアプリが正常に閉じられないと問題が発生し、キーが失われます。最初は RegCloseKey を使用していましたが、現在は RegFlushKey に変更していますが、まだ機能していません。すぐにレジストリに書き込むには何を追加する必要がありますか?

     WriteReg PROC 
          invoke RegCreateKeyExW,HKEY_CURRENT_USER,offset regkey,NULL,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,offset hIDKey,NULL
          .IF eax==ERROR_SUCCESS
            invoke lstrlenW,offset buf
            add eax,eax
            add eax,2
            invoke RegSetValueExW,hIDKey,offset keyname,NULL,REG_SZ,offset buf,eax
            invoke RegFlushKey,hIDKey
          .ENDIF 
 ret 
 WriteReg ENDP 
4

1 に答える 1

0

MSDN の状態:

関数が成功した場合、戻り値は ERROR_SUCCESS です。

関数が失敗した場合、戻り値は Winerror.h で定義されたゼロ以外のエラー コードです。

によって返される値を確認しましたRegCreateKeyExWか? たとえば、アクセス権の問題が発生する可能性があります。

RegSetValueEx呼び出しも同じです。戻りますERROR_SUCCESSか?

一般的な経験則として、API 呼び出しによって返されるコードを常に確認する必要があります。

于 2013-01-27T22:07:51.413 に答える