Qt之开机自启动及拥有管理员权限
源地址:http://blog.sina.cn/dpool/blog/s/blog_a6fb6cc90101feia.html
Windows开机自启动的程序很多,包括系统软件、杀毒软件、一些其他安装软件等等。当然可以禁止,通过软件管理或者手动删除对应的注册表中的项即可!但是为了系统的服务或者操作上的方便,我们往往需要开机自启动一些服务。 以下是开机的启动项:
Qt也不例外,在发布Qt程序的时候,我们通常也需要开机自启动自己的程序,那么如何实现呢?主要采用修改注册表的方式。
代码比较简单:
#define REG_RUN 'HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run'
void SettingDialog::setAutoStart(bool is_auto_start)
{
QString application_name = QApplication::applicationName();
QSettings *settings = new QSettings(REG_RUN, QSettings::NativeFormat);
if(is_auto_start)
{
QString application_path = QApplication::applicationFilePath();
settings->setValue(application_name, application_path.replace('/', '\\'));
}
else
{
settings->remove(application_name);
}
delete settings;
}
相信这段代码大家都能看懂,就不多做解释了!
查看注册表:
(1)运行:regedit
(2)找到对应的路径REG_RUN
里面的内容并没有加进去,当然是因为我们并没有调用自启动的方法!
可根据setAutoStart的不同参数来添加或者删除注册表中的项。
调用方法后:
这样以来,大部分工作已经做完!
修改注册表的时候,可能会注册失败,杀毒软件或者Windows也会进行提示:是否禁用或者允许程序更改。。。好的,怎么解决呢?
(1)让程序拥有管理员权限
(2)设置电脑的UAC级别
关于(1),何为程序拥有管理员权限?即程序运行的时候不需要右键->以管理员权限运行就可默认以此权限运行。在VS2008以后,配置比较简单,工程右键->属性->链接器->清单文件->UAC执行级别
(requireAdministrator)即可。
(3)Creator配置需要在pro中添加QMAKE_LFLAGS += /MANIFESTUAC:'level='requireAdministrator'uiAccess='false''
重新生成之后,可执行程序就会发生相应的变化(旁边多了一个小盾牌)!
关于(2),可参考UAC及其设置来对UAC进行设置。
注:
技术在于交流、沟通,转载请注明出处并保持作品的完整性。
作者:╰☆奋斗ing❤孩子` 原文:http://blog.sina.cn/dpool/blog/s/blog_a6fb6cc90101feia.html?vt=4。
Qt之开机自启动及拥有管理员权限的更多相关文章
- Qt之开机自启动
Windows开机自启动的程序很多,包括系统软件.杀毒软件.一些其他安装软件等等.当然可以禁止,通过软件管理或者手动删除对应的注册表中的项即可!但是为了系统的服务或者操作上的方便,我们往往需要开机自启 ...
- ubuntu命令行添加拥有管理员权限新用户
最近买了个服务器,只有一个root用户,天天登录挺不方便的,所以想要新建用户;之前在本地都是用界面话新建的用户,这次记录一下学习命令行新建用户的过程: 第一步 : # sudo adduser zhq ...
- QT中为程序加入超级管理员权限
QT的一些文件操作,注册表的操作等,有些操作会无效,主要是因为没有对C盘的相关权限. 解决方法: 1. mingw编译器 在pro工程文件中加入 RC_FILE=main.rc rc文件,之前一篇博客 ...
- imx6q Xorg下Qt应用开机自启动及添加桌面快捷启动图标的方法
启动scene3d例子: root@imx6qsabresd:/etc/X11/Xsession.d# ls -altotal 36drwxr-xr-x 2 root root 4096 Mar 12 ...
- tomcat7 开机自启动(转)
转自 http://blog.csdn.net/rainyspring4540/article/details/51861079 环境:win7 tomcat7 开机自启动: 使用管理员打开命令提示 ...
- Linux中添加管理员权限问题:xxx is not in the sudoers file. This incident will be reported.
在各个不同版本的linux中添加拥有管理员权限账户有不同的简便方式. 问题: 今天遇见将新添用户添加到root用户组后,运行sudo仍然提示 ”xxx is not in the sudoers fi ...
- win7下解决烦人的管理员权限问题
禁不住诱惑,用上win7了.可是,对system下的文件进行编辑时候,老是碰到什么必须拥有管理员权限才能进行操作,删除文件或者文件夹也遇到一样的问题.我就纳闷了,我不就是超级管理员吗?我怎么就没有权限 ...
- Active Directory中获取域管理员权限的攻击方法
Active Directory中获取域管理员权限的攻击方法 译:by backlion 0x00 前言 攻击者可以通过多种方式在Active Directory中获得域管理员权限, ...
- IIS Express(电脑无管理员权限如何启用VS调试)
转载页面:https://www.cnblogs.com/xbblogs/p/4756552.html(详细版) 直接按照红色字体步骤执行,其他字体可先忽略 出问题再详细看 1.设置配置文件 ...
随机推荐
- poj 1442 Black Box(优先队列&Treap)
题目链接:http://poj.org/problem?id=1442 思路分析: <1>维护一个最小堆与最大堆,最大堆中存储最小的K个数,其余存储在最小堆中; <2>使用Tr ...
- Robotium之Android控件定位实践和建议(Appium/UIAutomator姊妹篇)
本人之前以前撰文描写叙述Appium和UIAutomator框架是怎样定位Android界面上的控件的. UIAutomator定位Android控件的方法实践和建议 Appium基于安卓的各种Fin ...
- BZOJ 1800 fly-飞行棋
这道题其实考察的就是从其中能找到几条直径,因为这次数据范围比较小,所以只需设一个二维数组,记录一下每个点及每个点从零开始的位置,最后定一个变量记录周长,最后用个循环搜一下位置小于周长一半 ...
- ContentProvider中的数据生成时机
目录结构: , 先给个结论: 仅仅是实例化mySqliteHelper()这个类的时候是不会创建数据库的,实际上数据库的真正创建是在helper.getWritableDatabase()的方法执行后 ...
- 使用ownCloud在Linux安装你的个人云服务
ownCloud是一个免费开源的软件,用于为分享文件,日历,联系人,书签和个人音频/视频.非常容易安装和管理. 前提 在这篇教程里我使用CentOS 6.5 minimal server来安装ownC ...
- 【转】opencv-在图像上显示字符(不包括中文)
原文参见:http://blog.csdn.net/ycc892009/article/details/6516528 1 #include <cv.h> #include <hig ...
- .yml是什么文件
YAML(IPA: /ˈjæməl/,尾音类似camel骆驼)是一个可读性高,用来表达资料序列的编程语言.YAML参考了其他多种语言,包括:XML.C语言.Python.Perl以及电子邮件格式RFC ...
- 在cmd窗口中查询android的sqlite3数据库表之步骤
本文主要是写了一个android程序对sqlite3中数据库的employee表的插入.删除的操作,然后在cmd窗口中用sql命令查询employee表的操作过程. 1.第一步:首先把程序写好. 1. ...
- 使用Visual Studio将Objective-C编译C++
编译器支持 谷歌和苹果应用Clang由于他们的C++前端.为了使他们的执行代码Windows上,微软不得不Visual C++C2和Clang结合起来. (Clang是一个C语言.C++.Object ...
- R语言RJava安装步骤
1.安装JDK 2.在R下运行install.packages("rJava") 2.环境变量设置 CLASSPATH=xxx\R-xxx\library\rJava\jri ...