Qt如何写信给HKLM

Qt how to write to HKLM

本文关键字:HKLM 写信给 Qt      更新时间:2023-10-16

在我的Qt5.5应用程序中,我正在尝试写入

HKEY_LOCAL_MACHINE\软件\Microsoft\Windows\当前版本\运行

注册表项,以使用 QSettings在每个帐户上启用自动运行,但即使使用管理员权限我也无法做到这一点。你能告诉我我应该如何正确地做到这一点吗?如果我尝试将此代码与 HKCU 一起使用以启用当前用户的自动运行,它正在工作。

QSettings bootUp("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", QSettings::NativeFormat);
bootUp.setValue("/MyApp", """ + QDir::currentPath() + "/MyApp.exe"" + " -a -u");

让您感到困惑的是,您在 32 位 Windows 上运行了一个 64 位进程,并且您正在写入由注册表重定向器重定向的注册表的一部分。所以

HKLMSoftware

被重定向到

HKLMSoftwareWow6432Node

您会在那里找到您的条目。这没什么好担心的。系统将在启动时从 32 和 64 个视图中读取密钥。

请记住,如果您的代码无法写入注册表,那么它将引发异常。

简而言之,您的代码有效,您只是在注册表编辑器中查找错误的位置。