梅州企业网站,该工具支持 preview 功能,亚瑟中文 在线,多语言多商户商城源码前言
本文展示在windows环境下#xff0c;通过代码实现更改系统注册表的方式来实现程序的开机自动启动。
一、注册表
需要更改的系统注册表为:
HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run
二、代码演示
1.头文件
头文件autorun.h
#ifndef …前言
本文展示在windows环境下通过代码实现更改系统注册表的方式来实现程序的开机自动启动。
一、注册表
需要更改的系统注册表为:
HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run
二、代码演示
1.头文件
头文件autorun.h
#ifndef AUTORUN_H
#define AUTORUN_H
void autoRun();
#endif // AUTORUN_H
2.实现文件
cpp文件autorun.cpp
代码如下示例
#include autorun.h#include QDir
#include QSettings
#include QtWidgets//设置程序自启动 appPath程序路径
#define AUTO_RUN HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run
//#define AUTO_RUN HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run
void setProcessAutoRunSelf(bool isstart)
{//注册表路径需要使用双反斜杠如果是32位系统要使用QSettings::Registry32Format;64位系统 QSettings::Registry64FormatQSettings *settings new QSettings(AUTO_RUN, QSettings::NativeFormat);//以程序名称作为注册表中的键//根据键获取对应的值程序路径QString application_name QApplication::applicationName();//获取应用名称QString path settings-value(application_name).toString();//如果注册表中的路径和当前程序路径不一样//则表示没有设置自启动或自启动程序已经更换了路径//toNativeSeparators的意思是将/替换为\if(isstart){QString appPath QApplication::applicationFilePath();//找到应用的目录QString newPath QDir::toNativeSeparators(appPath);if (path ! newPath){settings-setValue(application_name, newPath);}}else settings-remove(application_name);
}void autoRun()
{setProcessAutoRunSelf(true);
}
3.程序调用
#include mainwindow.h
#include autorun.h //开机自动运行
#include QApplication
#include QMessageBoxint main(int argc, char *argv[])
{Q_INIT_RESOURCE(qss);//样式表QApplication a(argc, argv);autoRun();//设置开机自动运行MainWindow w;w.show();return a.exec();
}
总结
提示如上便实现了程序开机自启动在程序第一次运行的时候会被360之类的安全工具拦截询问系统更改的权限请给予绿灯通行.
若后续想取消程序的开机自启动可以在注册表中删除对应的项目即可。