QT编程,怎样知道一个外部程序是否在运行, 并且怎样停止他, 注意事先小弟我并不知这个程序有没有运行

QT编程,怎样知道一个外部程序是否在运行, 并且怎样停止他, 注意事先我并不知这个程序有没有运行
本帖最后由 lmyluk 于 2013-06-24 08:52:50 编辑
用QT编程,怎样知道一个外部程序是否在运行, 并且怎样停止他, 注意事先我并不知这个程序有没有运行
Qt 编程 进程通信 通信 进程管理

------解决方案--------------------
windows平台
http://blog.chinaunix.net/uid-13830775-id-215871.html
------解决方案--------------------
引用:
Quote: 引用:

windows平台
http://blog.chinaunix.net/uid-13830775-id-215871.html

还有,对这篇文章还有点疑问:如果外部程序已经运行了, 为什么还要打开特定PID进程?不是重复打开了吗?还有, 我想终止外部程序运行,应该用什么函数?求指教啊!!

这里openprocess不是打开一个新的进程,而是进入到进程中去取得一些信息用于比对
------解决方案--------------------
Qt库似乎没有完整的跨平台解决方案,你可能需要自己分平台判断。
windows可以使用上述提到的方法使用openprocess获取相关信息。终止很简单:
ShellExecute(0, "open","TASKKILL",(processname,NULL, SW_HIDE); 
其他平台需要想办法找到进程的pid(例如调用系统的ps命令进行过滤查找),
linux打开/proc/pid/cmdline查看进程状态。
sun系统打开/proc/pid/psinfo查看进程状态。