当前位置:   article > 正文

qt启动控制台程序,启动后隐藏到后台(windows)_qt 隐藏控制台

qt 隐藏控制台

一些控制台程序在Windows会有黑窗口弹出,有的时候不想在前台看到,想把它后台运行就行。这时候利用Windows的相关app函数实现。

实现方式如下:

 PROCESS_INFORMATION pi;
		STARTUPINFO si;      //隐藏进程窗口
		si.cb = sizeof(STARTUPINFO);
		si.lpReserved = NULL;
		si.lpDesktop = NULL;
		si.lpTitle = NULL;
		si.dwFlags = SW_SHOWDEFAULT ;
		si.wShowWindow = SW_SHOW;
		si.cbReserved2 = NULL;
		si.lpReserved2 = NULL;
		
		QString namestr = subelement.attribute("path");
		QString argstr = subelement.attribute("arg");
		QString name_ = apppath + "/" + namestr;  
		
		bool ishind = true;
		if (ishind)  ///flag为真为隐藏启动
		{
			si.dwFlags = STARTF_USESHOWWINDOW;
			si.wShowWindow = SW_HIDE;	
		}
	
		BOOL ret = FALSE;

		if (!argstr.isEmpty())
		{
			name_ += " " + argstr;
		}

	
		if (!currentdir.isEmpty())
		{
			ret = CreateProcess(NULL,LPWSTR(name_.toStdWString().c_str()),NULL,NULL,NULL,CREATE_NEW_CONSOLE,NULL,LPWSTR(currentdir.toStdWString().c_str()),&si,&pi);
		}
		else
		{
			ret = CreateProcess(NULL,LPWSTR(name_.toStdWString().c_str()),NULL,NULL,NULL,CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi);
		}

		if (ret == 0)
		{
			int errorcode = GetLastError();
			continue ;
		}

		if (ret != 0)
		{
			qDebug() <<  "start : " << name_;
			reStr += QString("<program name='%1' statue='1'/>\n").arg(namestr);
		}else
		{
			reStr += QString("<program name='%1' statue='-1'/>\n").arg(namestr);
			qDebug() <<  "start erro: " << name_;
		}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54

方法2

/将此代码复制到main函数所在cpp任何处就ok了/
#pragma comment( linker, “/subsystem:“windows” /entry:“mainCRTStartup”” )//隐藏DOS黑窗口

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/170577
推荐阅读
相关标签
  

闽ICP备14008679号