HKEY_LOCAL_MACHINEにキーを追加しようとしましたが、すべて問題なく機能し、キーを追加しませんでしたが、HKEY_LOCAL_MACHINEをHKEY_CURRENT_USERに変更すると、コードは正常に機能し、HKEY_CURRENT_USER にキーが追加されました。
リンカー -> マニフェスト ファイル -> UAC 実行レベルを requireAdministrator (/level='requireAdministrator')に変更しました。
および UAC は管理者としてファイルを実行します。どうすればよいですか? 助けてください。
int create_key(char * path)
{
LSTATUS reg_key;
int check;
HKEY hkey;
reg_key=RegOpenKeyEx(HKEY_LOCAL_MACHINE,TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"),0,KEY_ALL_ACCESS,&hkey);
if (reg_key != ERROR_SUCCESS){
return -1;
}
int ln = strlen(path)+1;
wchar_t * nPath = new wchar_t[ln]();
mbstowcs(nPath,path,ln);
reg_key = RegSetValueEx(hkey,TEXT("robotdriver"),0,REG_SZ,(LPBYTE)nPath,ln*sizeof(nPath));
if (reg_key != ERROR_SUCCESS){
RegCloseKey(hkey);
return -1;
}
RegCloseKey(hkey);
}
create_key("FooBar");