Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows上的QT自动启动应用程序_Qt - Fatal编程技术网

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

Windows上的QT自动启动应用程序,qt,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

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

我当前的代码:

#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
当我在regedit中查看时,我可以看到我的应用程序已经添加了带值的键,但是由于某些原因,当我登录到Windows时,应用程序不会自动启动


有什么想法吗?

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

HKEY\U本地\U计算机\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

而不是钥匙。即:

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");
}

不确定是否需要引用路径,reg设置已经是一个字符串,不需要转义…由于某些原因,它不会在该位置添加密钥(在Windows 7上进行Im测试)。。测试你的update@user3490755,错误是什么?你能诊断它吗?只是因为某些原因不会被添加。如何使QSettings返回错误?它在Windows 10上不起作用,因为写入
HKEY_LOCAL_机器
需要管理员权限,将其更改为
HKEY_CURRENT_用户
可以正常工作。