关闭另一个进程

 

 添加头文件:   #include "Tlhelp32.h"

void CloseProcess(CString name)
{
 HANDLE hProcess = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
 if (hProcess == INVALID_HANDLE_VALUE)
 {
  return;
 }

 PROCESSENTRY32 info = {0};
 info.dwSize = sizeof(PROCESSENTRY32);

 if (!Process32First(hProcess, &info))
 {
  return;
 }

 BOOL bFound = FALSE;

 while (1)
 {
  if (!Process32Next(hProcess, &info))
  {
   break;
  }

  if (info.szExeFile == name)
  {
   bFound = TRUE;

   HANDLE hClose = ::OpenProcess(PROCESS_TERMINATE, FALSE, info.th32ProcessID);
   if (hClose == NULL)
   {
    return;
   }

   if (!::TerminateProcess(hClose, 0))
   {
    return;
   }
   else
   {
   }
  }
 }
 ::CloseHandle(hProcess);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Qt 中,可以使用 QProcess 类来启动另一个进程。QProcess 类提供了一种跨平台的方法来启动进程,并与其进行交互。 以下是使用 QProcess 启动另一个进程的代码示例: ```cpp QProcess process; process.start("path/to/your/program.exe"); ``` 在上面的示例中,我们创建了一个 QProcess 对象,并使用 `start()` 方法来启动另一个程序。你需要将 "path/to/your/program.exe" 替换为要启动的实际程序的路径。 如果需要与启动的进程进行交互,则可以使用 QProcess 的一些其他方法,如 `write()` 和 `readAll()`。例如,以下代码启动了一个计算器程序,并将数字 2 和加号写入它的标准输入,然后读取了计算器的标准输出: ```cpp QProcess process; process.start("calc.exe"); if (process.waitForStarted()) { process.write("2+2\n"); process.waitForBytesWritten(); process.waitForReadyRead(); QString output = process.readAll(); qDebug() << output; process.close(); } ``` 在上面的示例中,我们首先使用 `waitForStarted()` 方法等待进程启动。然后,我们使用 `write()` 方法将 "2+2\n" 写入进程的标准输入。接下来,我们使用 `waitForBytesWritten()` 等待数据被写入进程。然后,我们使用 `waitForReadyRead()` 等待进程的标准输出可用。最后,我们使用 `readAll()` 方法读取进程的标准输出,并将其打印到控制台上。最后,我们使用 `close()` 方法关闭进程。 希望这可以帮助你启动并与其他进程进行交互。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值