Windows上的QT自动启动应用程序

时间:2014-04-28 09:10:21

标签: qt

我试图让我的应用程序启动一个用户登录到他或她的帐户。

我目前的代码:

#ifdef Q_OS_WIN
QSettings bootUpSettings("HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat);
QString base_dir = qApp->applicationDirPath() + "\\MyApp.exe";

if (autoStartChecked == "true") {
    bootUpSettings.setValue("MyApp","\""+base_dir+"\"");
} else {
    bootUpSettings.remove("MyApp");
}
#endif

当我查看注册表时,我可以看到我的应用程序添加了有价值的键,但由于某种原因,当我登录Windows时,应用程序不会自动启动。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您必须将应用程序可执行文件的路径放入

  

HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的Windows \ CurrentVersion \运行

而是

键。即:

QSettings bootUpSettings("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat);
QString app_path = QCoreApplication::applicationFilePath();
if (autoStartChecked == "true") {
    bootUpSettings.setValue("MyApp", app_path);
} else {
    bootUpSettings.remove("MyApp");
}