• 设置Qt程序在Windows开机后自动运行


    (转自:http://blog.csdn.net/weiren2006/article/details/7443362) 

    主要原理是修改Windows的注册表来实现的,Qt的QSettings提供了访问ini,注册表的功能

    //读取注册表的信息,让程序自启动
    voidMainWindow::Readregedit(bool isAutoRun)
    {
        QSettings*reg=newQSettings("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run",QSettings::NativeFormat);
        //开机自动运行
        if(isAutoRun)
        {
             reg->setValue("app",QApplication::applicationFilePath());
        }
        else
        {
          reg->setValue("app","");
        }
    }

    //开机自启动,主窗体隐藏 if(argc>1&&(argv[1]==(char*)"//min")) {   w.hide(); } else {   w.showNormal(); }
    
    
    PS:开机启动的时候,小托盘图标有可能不能显示出来,可以利用资源文件里面的图标,
         作为小托盘,这样就可以解决这个问题。


    让软件在系统启动时自动运行,可通过修改注册表实现。

    在HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun中添加需启动的程序路径,代码如下:

    voidautoStart(boolflag)
    {
    //写入注册表,开机自启动
    HKEYhKey;
    //找到系统的启动项
    LPCTSTRlpRun=(wchar_t*)QString("Software\Microsoft\Windows\CurrentVersion\Run").utf16();
    //打开启动项Key
    longlRet=RegOpenKeyEx(HKEY_LOCAL_MACHINE,lpRun,0,KEY_WRITE,&hKey);
    if(lRet==ERROR_SUCCESS)
    {
    DWORDdwRet=QApplication::applicationFilePath().length()*2;
    //添加一个子Key,并设置值
    if(flag==true)
    {
    lRet=RegSetValueEx(hKey,(WCHAR*)QString("test").utf16(),0,REG_SZ,
    (BYTE*)QApplication::applicationFilePath().utf16(),dwRet);
    }
    else
    {
    lRet=RegSetValueEx(hKey,(WCHAR*)QString("test").utf16(),0,REG_SZ,
    (BYTE*)"",dwRet);
    }
    //关闭注册表
    RegCloseKey(hKey);
    if(lRet!=ERROR_SUCCESS)
    {
    qDebug("error");
    }
    }
    }
  • 相关阅读:
    media query 开发总结
    整屏滚动
    移动端reset样式
    中国天气网 城市代码 sql语句
    php文章tag标签的增删
    oracle的分号和斜杠/
    php 操作 oracle lob 数据2
    php 操作 oracle lob 数据
    oracle创建用户
    php进度条
  • 原文地址:https://www.cnblogs.com/FindSelf/p/3716741.html
Copyright © 2020-2023  润新知