Qt 开机自启动并最小化到后台(通过启动时传入的参数判断是否是开机自启动)

1、开机自启

开机自启动使用Qt的QSettings写注册表:

#define AUTO_RUN "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run"

//参数1:注册表位置
//参数2:NativeFormat(注册表模式);IniFormat(ini文件模式)
QSettings *settings = new QSettings(AUTO_RUN,QSetting::NativeFormat);

//注意“min”前面的空格,没有空格的话系统没办法区分两个参数。
QString para = 应用程序完整路径 + " min";
settings->setValue(应用程序名称, 应用程序完整路径);

好,这样开机自启动的注册表就写进去了。

另外我之前因为一些不确定的问题,debug一直没有办法自启,release才可以。不知道其他人有木有这个问题。
  

2、判断参数是否要最小化

根据启动时的参数判断:

如果是自启动,有第二参数。
如果是双击exe启动,没有第二参数。

	int main(int argc, char *argv[])
	{
		QApplication a( argc, argv );
	
		CMainWidget *w;
		w.show();
		
		//获取命令行参数,判断是否是【开机自启动】,如果是,最小化。
		QStringList arguments = QCoreApplication::arguments();
		
		//以第一个参数是程序路径,第二个参数才是min,所以我们取第二个参数。
		if(arguments.size() > 1)
		{
			QString para2 = arguments.at(1);
			if(para2 == "min")
			{
				if(w.isVisible())
				{
					w.showMinimized();
					//如果做了右下角的托盘,最小化之后可以隐藏掉。
					w.hide();
				}
			}
		}

		ret = a.exec();
	}

3、凑个第三步:结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值