void Widget::SetProcessAutoRunSelf(const QString &appPath)
{
//注册表路径需要使用双反斜杠,如果是32位系统,要使用QSettings::Registry32Format
QSettings settings("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
QSettings::Registry64Format);
//以程序名称作为注册表中的键
//根据键获取对应的值(程序路径)
QFileInfo fInfo(appPath);
QString name = fInfo.baseName();
QString path = settings.value(name).toString();
//如果注册表中的路径和当前程序路径不一样,
//则表示没有设置自启动或自启动程序已经更换了路径
//toNativeSeparators的意思是将"/"替换为"\"
QString newPath = QDir::toNativeSeparators(appPath);
if (path != newPath)
{
settings.setValue(name, newPath);
}
}
打开注册表操作



本文介绍了一种通过修改注册表来实现程序自启动的方法。利用QSettings类在不同位数的Windows系统上设置正确的注册表路径,确保应用程序能够在开机时自动运行。
1313

被折叠的 条评论
为什么被折叠?



