-1
我需要從我的應用程序中讀取HKEY_LOCAL_MACHINE \ SOFTWARE中的鍵值。我用下面的代碼片段要做到這一點,但它總是返回2.RegOpenKeyExW和HKEY_LOCAL_MACHINE在Windows Embedded 7上返回2 64位
std::wstring strTmp;
strTmp = L"SOFTWARE\\TEMP";
RegOpenKeyExW(HKEY_LOCAL_MACHINE, strTmp.c_str(), 0, KEY_READ, &hKey))
但是當我使用HKEY_CURRENT_USER
那麼我就能從HKEY_CURRENT_USER\SOFTWARE
成功讀取信息。據我瞭解,由於訪問權限,我的應用程序無法從HKEY_LOCAL_MACHINE
讀取。我用管理員權限運行我的應用程序(使用運行方式),但這並沒有幫助我。
有人可以介紹一下如何使用RegOpenKeyExW
訪問HKEY_LOCAL_MACHINE
。
Windows錯誤代碼2是ERROR_FILE_NOT_FOUND。你確定你的註冊表項存在嗎? –
你的代碼也看起來缺少一個打開的標誌。使用KEY_WOW64_64KEY訪問64位視圖或使用KEY_WOW64_32KEY訪問32位視圖(即Wow6432Node下的鍵)。 –
@ Mohamad Elghawi是註冊表項存在。但它仍然返回2.另外我使用Procmon監視註冊表路徑,並且在進行此調用時顯示正確的路徑,但窗口顯示找不到文件。另外,正如你所建議的,我曾試着將KEY_WOW64_64KEY與KEY_READ結合在一起,但沒有運氣。 – Panch