如何在HKEY_LOCAL_MACHINE上添加带有c ++的注册表项

时间:2013-05-07 12:49:22

标签: c++ winapi registry

我尝试在 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");

0 个答案:

没有答案