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\'\" #以管理员运行
QMAKE_LFLAGS += /SUBSYSTEM:WINDOWS,\"5.01\" #VS2013 在XP运行
然后以管理员身份运行Creator,重新编译即可。

    重新生成之后,可执行程序就会发生相应的变化(旁边多了一个小盾牌)!

                                                         

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值