QProcess::startDetached(),但隐藏控制台窗口
QProcess::startDetached() but hide console window
是否可以在隐藏控制台窗口的同时使用QProcess::startDetached()
在Windows中运行程序?QProcess::start()
将隐藏控制台窗口,但QProcess::startDetached()
不会,至少在默认情况下是这样。
我可以使用QProcess::start()
,但我必须等待子程序完成,否则析构函数会强制终止它,并且我想在启动子进程后立即关闭程序。
我遇到了完全相同的问题,无法以干净的方式解决。我找到了两个选项:
- 破解方法:子类
QProcess
,启动进程后调用setProcessState(QProcess::NotRunning);
。这将阻止析构函数终止进程。但它依赖于QProcess
的一个实现细节 -
创建内存泄漏:在堆上动态创建
QProcess
,但从不删除它,因此从不调用其析构函数{ QProcess *process = new QProcess; process->start("taskkill", QStringList() << "/f" << "/im" << "My Service.exe"); }
您可以使用Windows API隐藏控制台。
首先,#include <windows.h>
。
然后呼叫ShowWindow(GetConsoleWindow(), SW_HIDE);
在分离过程中的某个地方。
相关文章:
- 在C++中隐藏键盘记录器的控制台窗口
- 如何在 c++ 程序运行时隐藏控制台?
- 如何在调用系统()时隐藏控制台窗口
- ShowCursor(FALSE) 不会在控制台应用程序上隐藏光标
- 如何在使用C++打开隐藏的 COM 对象时隐藏控制台窗口
- 具有隐藏控制台窗口的Allocconsole()
- C++ Windows CreateChildProcess - 隐藏/不显示子进程的控制台窗口
- 对 SDL 隐藏控制台窗口
- Visual C 隐藏控制台窗口
- 如何在QxtApplication中隐藏控制台窗口
- Qt 隐藏控制台窗口停止写入日志文件
- 通过 c++ 运行命令时隐藏控制台窗口
- 当gui程序向cli程序发送命令时,隐藏控制台窗口
- C++ 如何在启动时隐藏控制台窗口
- QProcess::startDetached(),但隐藏控制台窗口
- 在远程进程中隐藏控制台窗口
- 如何在Mac OS中隐藏控制台窗口(gcc编译器)
- 从任务栏隐藏控制台c++程序
- 在程序运行时隐藏控制台的独立于平台的方法
- Qt GUI应用程序与控制台输出-隐藏控制台正常启动上的Windows