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";
process = new QProcess(this);
QString string;
//process->setProcessChannelMode(QProcess::MergedChannels);
qDebug()<isOpen();
process->start(str.trimmed());//trimmed()函数去除字符串最后空格
str1 = process->processId();
ui->lineEdit->setText(QString::number(str1));
qDebug()<
bool bo = process->isOpen();
qDebug()<
string = process->Text;
qDebug()<
p = process->pid();
}
else if(ui->buttonBox->button(QDialogButtonBox::Cancel) == button)
{
qDebug()<
qDebug()isOpen();
if(process->isOpen())
{
HANDLE hApp = OpenProcess(PROCESS_QUERY_INFORMATION
| PROCESS_TERMINATE, FALSE, str1);
if (hApp == NULL) return;
TerminateProcess(hApp, NULL);
CloseHandle(hApp);
}
}
}

解决方案

参考:http://blog.chinaunix.net/uid-26808060-id-3347391.html

时间: 2024-12-31 21:05:22

Qt关闭QProcess打开的进程问题的相关文章

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

问题描述 Qt项目中用QProcess打开了一个外部应用,怎么将这个外部应用关掉? Qt项目中我设计了两个按钮,当点击其中一个按钮时用QProcess对象打开一个应用,点击另外一个按钮时想把打开的这个应用关掉,但是一直都没成功,怎么实现呢? 解决方案 Qt QProcess应用 解决方案二: 找到句柄来关闭进程 #include <windows.h> ... class ProcessKiller : public QObject { qint64 m_pid; public: Proces

win7关闭没响应的进程速度非常慢怎么办

系统死机这是我们人人都会遇到的问题,而死机的原因很多时候都是因为关闭进程,但是系统关闭进程响应的速度太慢了.而你又开了新的进程导致开的东西太多了.而导致系统死机,那么我们加快关闭进程时,系统的反应时间就能够有效的减少电脑死机. 1 想要提高关闭进程时系统的反应速度,只能更改系统设置. 要更改设置要进入注册表修改. 2 进入注册表, 点击开始,在搜索框或者运行里面输入regedit,回车就可以打开注册表了. 3 然后定位到HKEY_Current_USERControl PanelDesktop,

qt使用QProcess调用外部程序不成功

问题描述 qt使用QProcess调用外部程序不成功 想要完成一个点击按钮打开外部exe的功能,做了一个button然后转到信号与槽函数这这样的 两个QProcess调用方法都尝试过了,都是出现一个cmd框一闪就没了,这个程序是vs2012自己编写的一个程序,请问是哪错了 调用的函数 解决方案 这是两个调用函数 解决方案二: 本文转自:http://blog.csdn.net/WaderChan/archive/2009/05/19/4199913.aspx ? 本文通过QProcess,实现了

win7系统如何一键关闭多个相同进程?

  咱们先什么都不说,大家看看如下图中所示的任务管理中的运行进程: 图中窗口内出现了大量的相同的运行进程,使用win7系统的朋友应该都知道吧,系统中内置了IE8浏览器,这也正是导致这种多个iexplore.exe进程出现的原因,其实这些重复的进程除了浪费咱们的CPU之外,别无它用,日常的操作中没有发现也就罢了,若是发现了肯定是要关闭掉的,但是如此多的进程,一个一个的进行操作,是不是很慢呢?下面,小编就为大家介绍一个便捷的操作方式吧! 1.点击开始菜单,然后在所有程序中找到附件-命令提示符并右键点

教你win7纯净版32位系统中一键关闭多个相同进程的技巧

  原因分析:如果win7纯净版32位系统中内置了IE8浏览器的话,这也正是导致这种多个iexplore.exe进程出现的原因. 1.首先点击win7系统开始菜单,然后在所有程序中找到附件,命令提示符并右键点击,然后以管理员身份运行; 2.在命令提示符窗口中,输入代码taskkill /F /IM iexplore.exe并回车; 完成上述操作之后,任务管理器中的重复IE进程就会被关闭掉了,不过上面的操作过程还是挺麻烦的,其实,咱们可以将这些操作完全的设置为一个快捷方式,以后直接双击即可关闭,具

C# winform登录验证成功关闭窗体打开新窗体

问题描述 登录窗体:w_1,WEBBROSWER登录内容登录成功后关闭w_1打开新窗体w_2怎么实现,w_1WEBBROSWER 解决方案 解决方案二:全局静态变量:staticboolok=false;先打开主窗体,在OnLoad的时候模式打开登录窗体登录窗体中验证成功时,ok=true;登录窗体返回后,检测if(!ok)Close();解决方案三:有个非模式化窗体的设置,showdialog,查询MSDN会告诉你关于这个窗体的代码解决方案四:可以下载这个反编译看一下.http://downl

人脸识别-linux下qt中opencv打开摄像头HIGHGUI ERROR:OpenCV Error:

问题描述 linux下qt中opencv打开摄像头HIGHGUI ERROR:OpenCV Error: 我在Ubuntu下用qt结合opencv做一个人眼状态识别的程序,qt做界面,程序在vs控制台环境下已经可以运行,但是qt下出错.错误信息 如下: HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cvtColor, file /home/mkc/op

android webview-加载带声音的H5 声音不自动播放 音频是个背景音乐可以关闭可以打开,点击关闭在打开就能播放什么原因

问题描述 加载带声音的H5 声音不自动播放 音频是个背景音乐可以关闭可以打开,点击关闭在打开就能播放什么原因 加载带声音的H5 声音不自动播放 音频是个背景音乐可以关闭可以打开,点击关闭在打开就能播放,什么原因有的图片也有些模糊 解决方案 http://www.html5cn.com.cn/news/course/2012-10-06/139.html

api-C#如何使microphone即拾音器关闭和打开?

问题描述 C#如何使microphone即拾音器关闭和打开? 是用sendmessage吗? 不知道参数应该是什么,查了好多文档,没找到 不是的话应该如何控制? 解决方案 这有一个解决方案,但首先得看懂http://www.codeproject.com/Articles/11695/Audio-Library-Part-I-Windows-Mixer-Control?msg=5167876#_articleTop _其实对于我的要求来说,只用到了其中一点 private Mixers mMix