0

アプリケーションから HKEY_LOCAL_MACHINE\SOFTWARE のキー値を読み取る必要があります。私はそれを行うために次のスニペットを使用しますが、常に 2 を返します。

std::wstring strTmp;
strTmp = L"SOFTWARE\\TEMP";
RegOpenKeyExW(HKEY_LOCAL_MACHINE, strTmp.c_str(), 0, KEY_READ, &hKey))

しかし、使用するとHKEY_CURRENT_USER、から情報を正常に読み取ることができますHKEY_CURRENT_USER\SOFTWAREHKEY_LOCAL_MACHINEアクセス権が原因でアプリケーションが読み取りできないことを理解しています。管理者権限で (Run As を使用して) アプリケーションを実行しましたが、それは役に立ちませんでした。

HKEY_LOCAL_MACHINEを使用してアクセスするにはどうすればよいか、誰かが光を当てることができますかRegOpenKeyExW

リンク12を調べましたが、役に立ちませんでした。

4

1 に答える 1

1

私の誤解をお詫び申し上げます。実際、アプリケーションを機能させるにはinKEY_WOW64_32KEYの代わりに flagを使用する必要がありました。モハマド・エルガウィに感謝します。KEY_WOW64_64KEYRegOpenKeyExW(HKEY_LOCAL_MACHINE, strTmp.c_str(), 0, KEY_READ | KEY_WOW64_32KEY, &hKey))

于 2015-11-02T06:51:29.383 に答える