Qt项目中用QProcess打开了一个外部应用,怎么将这个外部应用关掉?

问题描述

Qt项目中用QProcess打开了一个外部应用,怎么将这个外部应用关掉?

Qt项目中我设计了两个按钮,当点击其中一个按钮时用QProcess对象打开一个应用,点击另外一个按钮时想把打开的这个应用关掉,但是一直都没成功,怎么实现呢?

解决方案

Qt QProcess应用

解决方案二:

找到句柄来关闭进程

 #include <windows.h>
...
class ProcessKiller : public QObject {
  qint64 m_pid;
public:
  ProcessKiller(qint64 pid, QObject * parent = 0) :
    QObject(parent), m_pid(pid) {}
  ~ProcessKiller() {
    HANDLE hApp = OpenProcess(PROCESS_QUERY_INFORMATION
                              | PROCESS_TERMINATE, FALSE, m_pid);
    if (hApp == NULL) return;
    TerminateProcess(hApp, NULL);
    CloseHandle(hApp);
  }
}
时间: 2024-09-17 04:39:42

Qt项目中用QProcess打开了一个外部应用,怎么将这个外部应用关掉?的相关文章

winform-C# Winform项目,如何实现打开的外部视频客户端程序响应后台程序的键盘事件

问题描述 C# Winform项目,如何实现打开的外部视频客户端程序响应后台程序的键盘事件 在C# Winform项目,在form1窗体有一个button按钮. 目前已经可以在button的点击事件中,通过以下代码实现将"CBOX央视影音"在线视频播放的App客户端打开. 代码如下: Process proc = new Process(); proc.StartInfo.FileName = @"C:Program FilesCNTVCBoxCBox.exe";

Qt关闭QProcess打开的进程问题

问题描述 Qt关闭QProcess打开的进程问题 槽函数如下,用QProcess打开Windows计算器,但是问什么关不了这个进程?求大神指导 void MainWindow::on_buttonBox_clicked(QAbstractButton *button) { if(ui->buttonBox->button(QDialogButtonBox::Ok) == button) { QString str = "C:/WINDOWS/System32/calc.exe&quo

vc6-安装VC6后qt项目无法编译

问题描述 安装VC6后qt项目无法编译 原先使用vs2008+qt4.8开发项目,然后装了一个vc6.0之后,在08里编译qt项目的时候就会出现相面的错误:http://img.my.csdn.net/uploads/201411/07/1415362551_1890.png 解决方案 自己来回答好了,应该是VC6在安装的时候破坏了08安装目录下面的一些文件,把图片中的文件夹从另外一台电脑的08安装目录下拷过来覆盖一下就ok了

C#中用filestream新建了一个jpg后dispose,然后用bitmap打不开了

问题描述 C#中用filestream新建了一个jpg后dispose,然后用bitmap打不开了 对于其他的jpg我用bitmap可以正常打开 对于我用filestream新建后又写入了数据的jpg(之后用可以在电脑文件管理器中看到并打开查看,是正确的jpg文件),然而随后我调用了dispose,因为我想再用bitmap直接打开这个文件,然而失败了.并没有报错,只是异步调用的函数一致卡在new Bitmap(filepath)这一句上... 求解. 在做一个C#的网络文件传输,客户端发给服务器

visual studio-VS编译qt项目出现Moc&amp;amp;#39;ing xxx.h,系统找不到指定路径问题

问题描述 VS编译qt项目出现Moc'ing xxx.h,系统找不到指定路径问题 这是用visual studio2015从git导入的用qt框架编写的c++项目.项目路径https://github.com/AncientLysine/BiliLocal. 我装上了qt插件导入了项目然后出现下图报错 提示说找不到头文件,,但是这个头文件是存在并且目录是正确的.为啥就会报错呢?求解. 解决方案 qt的moc用来生成slot和signal的,首先看看那个路径的moc是否存在和能否运行,然后每一个涉

插件开发-Qt Creator 用插件法编写一个自定义窗口部件

问题描述 Qt Creator 用插件法编写一个自定义窗口部件 系统自身条件: (1)我的系统是linux,Qt Creator 5.0.2. (2)我是用Qt Creator自带的帮助文档中的例子(analogclock). 按照说明一步一步做,构建通过,并且生成3个makefile文件,一个libanalogclockplugin.so文件,貌似这就是插件,我把它拷贝到Qt Creator中designer的插件目录下.本应该在Qt Creator重启后,可以在designer中可以看到这个

修改数据库表结构,和项目中用到表的页面。

问题描述 修改数据库表结构,和项目中用到表的页面. 求助前辈们: 公司要修改数据库表结构,把两个表整合成一个,现在数据库端已经修改好了, 把B表数据和列都加到A表中了,但是项目中用到B表的页面有200个左右, 有什么好办法快速的修改好吗?项目是asp.net,实体是用Codesmith生成的. 解决方案 可以借助一些工具辅助下,比如vim 解决方案二: 用Codesmith再生成一次代码,然后再执行下重构就是了.不过如果你的代码耦合在一起,还是要一些工作量的.

关于Vs2015社区版和vs2010的项目转换--vs2015打开后,到10就打不开视图设计器了。求解!

问题描述 关于Vs2015社区版和vs2010的项目转换--vs2015打开后,到10就打不开视图设计器了.求解!错误26"ResolveComReference"任务意外失败.System.IO.FileNotFoundException:未能加载文件或程序集"Microsoft.Build.Tasks.Core"或它的某一个依赖项.系统找不到指定的文件.文件名:"Microsoft.Build.Tasks.Core"在System.Refle

有人在实际项目中用Entity Framework吗?

问题描述 请问有人在实际项目中用EF吗,用得多不多?如果不用的话Model层怎么映射,全部手写吗? 解决方案 解决方案二: 该回复于2012-03-14 13:15:46被版主删除解决方案三: 我经常用的是Model层的,不用model的还真没有用过呢!值得考虑!!解决方案四: 顶楼上,楼主你该抽空结结贴了解决方案五: 现在就在用ef但是没用codefirst解决方案六: 另外mvc和ef没有必然联系ef就相当于数据访问层解决方案七: EntityFramework:我暂时还没考虑用我觉得还不是