zoukankan      html  css  js  c++  java
  • 设置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");
    }
    }
    }
  • 相关阅读:
    android 圆角图片的实现
    navigationView 的使用和布局文件的绑定
    android listview 的监听事件
    android第三方框架 xlistview 的使用
    android Baseadapter 和 ViewHolder的使用
    android 调用电话功能
    android 颜色对照
    Android_menu_SubMenu
    Android_menu_optionMenu
    Android_Menu_contextMenu
  • 原文地址:https://www.cnblogs.com/FindSelf/p/3716741.html
Copyright © 2011-2022 走看看