Qt QProcess启动外部exe和结束外部exe

1、QProcess启动外部exe

QProcess  *m_process=new qprocess;
m_process->strat("exe路径");
//如何将exe置于程序之前
HWND hwnd=FindWindow("类名称","exe标题名称");
if(hwnd)
{
    setForegroundWindow(hwnd);
}

2、QProcess关闭主程序,自动结束外部exe运行

使用了很多方法有一些失败的案例,不知道为什么不生效

/*m_process->close();//不生效
m_process->treminate();//不生效
m_process->kill();//不生效*/

m_process->execute(" taskkill /im  程序名称 /f");
delete m_process;
m_process=nullptr;

  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用QProcess启动外部程序。以下是示例代码: ```cpp #include <QCoreApplication> #include <QProcess> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QProcess process; process.start("path/to/your/exe"); // 替换为你的exe文件路径 return a.exec(); } ``` 此代码将启动名为“path/to/your/exe”的外部程序。如果需要,可以使用`process.arguments()`方法向外部程序传递参数。例如: ```cpp process.start("path/to/your/exe", QStringList() << "-arg1" << "value1" << "-arg2" << "value2"); ``` 这将向外部程序传递两个参数:`-arg1 value1`和`-arg2 value2`。 ### 回答2: 在Qt启动外部程序(.exe文件)可以使用QProcess类。QProcess类提供了一个接口来启动和与外部程序进行交互。下面是一个简单的示例: ```cpp #include <QProcess> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QString program = "/path/to/your/program.exe"; // 外部程序的路径 QProcess process; process.start(program); if (process.waitForFinished()) { qDebug() << "程序已启动"; } else { qDebug() << "启动程序失败"; } return a.exec(); } ``` 上面的代码示例中,我们首先创建了一个QProcess对象,然后调用start()方法来启动外部程序。waitForFinished()方法会阻塞当前线程,直到外部程序完成执行。如果外部程序成功启动并完成执行,waitForFinished()方法将返回true,否则返回false。 在实际应用中,你可以根据需要使用QProcess的其他方法来与外部程序进行交互,比如使用write()方法向外部程序发送输入数据,使用readAll()方法读取外部程序的输出数据等等。你还可以使用信号和槽机制来处理外部程序的输出和错误信息等。 请注意,启动外部程序时需要提供程序的正确路径。你需要根据你的实际情况将"/path/to/your/program.exe"替换为你要启动外部程序的路径。另外,为了能够使用QProcess类,你需要包含<QtProcess>头文件。 希望以上信息对你有帮助! ### 回答3: 在Qt启动外部程序(exe)有多种方法,可以根据需求选择适合的方法。 一种常见的方法是使用QProcess类。首先,我们需要包含QProcess头文件,然后创建一个QProcess对象。我们可以使用QProcess的start()函数来启动外部程序。例如,如果要启动一个名为"example.exe"的外部程序,可以使用以下代码: ```cpp #include <QProcess> int main(int argc, char *argv[]) { QApplication a(argc, argv); QProcess process; process.start("example.exe"); return a.exec(); } ``` 在这个例子中,我们创建了一个QProcess对象process,并使用它的start()函数来启动外部程序"example.exe"。这将在后台启动该程序。 另一种方法是使用QDesktopServices类的openUrl()函数,该类可以用于打开文件和URL。使用openUrl()函数,我们可以指定外部程序的路径来启动它。例如,下面的代码演示了如何使用QDesktopServices启动名为"example.exe"的外部程序: ```cpp #include <QDesktopServices> int main(int argc, char *argv[]) { QApplication a(argc, argv); QString exePath = "C:/path/to/example.exe"; QDesktopServices::openUrl(QUrl::fromLocalFile(exePath)); return a.exec(); } ``` 在此示例中,我们使用QDesktopServices的openUrl()函数来打开外部程序。我们通过指定外部程序的路径(例如"C:/path/to/example.exe")来启动它。 这些方法只是Qt启动外部程序的两种常见方法之一。根据实际需求,可能还有其他适用的方法,如使用QSystemTrayIcon等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值