在我的Qt5.5应用中,我试图写信给
HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的Windows \ CurrentVersion \运行
注册表项,使用QSettings在每个帐户上启用自动运行,但即使使用管理员权限也无法执行此操作。你能告诉我我该怎么办?如果我尝试将此代码与HKCU一起使用以启用对当前用户的自动运行,那么它就可以正常工作。
QSettings bootUp("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat);
bootUp.setValue("/MyApp", "\"" + QDir::currentPath() + "/MyApp.exe\"" + " -a -u");
答案 0 :(得分:3)
令您感到困惑的是,您在64位Windows上运行了32位进程,并且您正在写入由registry redirector重定向的注册表的一部分。所以
HKLM\Software
被重定向到
HKLM\Software\Wow6432Node
你会在那里找到你的参赛作品。这没什么好担心的。系统将在启动时从32个视图和64个视图中读取密钥。
请记住,如果您的代码无法写入注册表,那么它将抛出异常。
简而言之,您的代码有效,您只是在注册表编辑器中查找错误的位置。