Qt启动/杀死外部进程
2021/11/26 7:10:33
本文主要是介绍Qt启动/杀死外部进程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
参考1
启动外部线程
主要有:
- QProcess ::execute() 阻塞主进程的方式打开(静态成员);
- QProcess ::start() 以主进程的子进程的方式打开(父子);
- QProcess ::startDetached() 以隔离的方式打开;
(1) QProcess ::execute() 方法
QProcess::execute("C:\\Environment\\influxDB_1_5_2\\influxd.exe")
(2) QProcess ::start() 方法
QProcess proc; proc.start("C:\\Environment\\influxDB_1_5_2\\influxd.exe");
(3) QProcess ::startDetached() 方法 (推荐!)
if (QProcess::startDetached("C:\\Environment\\influxDB_1_5_2\\influxd.exe")) qDebug() <<"Running..."; else qDebug() <<"Failed";
判断进程是否在运行
bool IsProcessExist(const QString &processName)// 返回 true/false { QProcess proc; proc.start("tasklist"); proc.waitForFinished();// 等待 tasklist 启动 QByteArray result = proc.readAllStandardOutput(); QString str = result; if(str.contains(processName)) { qDebug() << processName <<"is Running"; return true; } else { qDebug() << "Can't find " << processName; return false; } }
bool IsProcessExist(const QString &processName)// 返回 true/false { QString strInfo = QString::number(QProcess::execute("tasklist", QStringList()<<"-fi"<<"imagename eq influxd.exe")); if(strInfo .contains(processName)) { qDebug() << processName <<"is Running"; return true; } else { qDebug() << "Can't find " << processName; return false; } }
void getProcessInfo() // 返回信息(需要对返回信息进行判断) { QProcess::execute("tasklist", QStringList()<<"-fi"<<"imagename eq prog.exe"); }
终止外部进程
// 通过进程ID结束进程(该进程由proc对象打开前提是通过 proc) QProcess::startDetached("taskkill -t -f /pid " + QString::number(proc.processId()));
// 通过进程名字结束进程 QProcess::startDetached("taskkill -t -f /IM " + QString("influxd.exe"));
这篇关于Qt启动/杀死外部进程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)