QString filepath = QDir::currentPath()
QString fullpath = filepath+"\\pp\\dist\\start"
QString title = fullpath+"\\main.exe"
title = title.replace("/","\\")
fullpath = fullpath.replace("/","\\")
QProcess p(this)
p.setWorkingDirectory(fullpath)
p.start("cmd", QStringList()<<"/c"<<"start main.exe")
p.waitForStarted()
p.waitForFinished()
关闭
QProcess p(this)
p.setWorkingDirectory(fullpath)
p.start("cmd", QStringList()<<"/c"<<"taskkill /f /t /im main.exe")
p.waitForStarted()
p.waitForFinished()
把打开的外部程序进程记下就好处理了下面的代码在VS2008中测试通过
private Process p
private void button1_Click(object sender, EventArgs e)
{
if (p == null || p.HasExited)
{
//ProcessStartInfo psInfo = new ProcessStartInfo("notepad.exe")
//psInfo.WindowStyle = ProcessWindowStyle.Hidden
//隐藏
//p = Process.Start(psInfo)
p = Process.Start("notepad.exe")
}
}
private void button2_Click(object sender, EventArgs e)
{
if (p != null &&!p.HasExited)
{
p.Kill()
//如果启动的程序有显示界面,并且该进程不是隐藏启动的,也可以用下面的语句关闭该进程
//p.CloseMainWindow()
}
}
进程关闭外部程序:QString KillStr = "taskkill /f /im main.exe"
QProcess *Process = new QProcess(this)
Process->start(KillStr)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)