【问题标题】:How to terminate one application from another application如何从另一个应用程序终止一个应用程序
【发布时间】:2016-11-29 18:06:22
【问题描述】:

共有三个应用程序main.exe(C++),一个.exe(C++)和两个.exe(.net)。

如果它们正在运行,我想从 main.exe 中终止 one.exe 和 two.exe。

【问题讨论】:

  • 告诉我们更多关于这些程序的信息。下面的答案虽然正确,但不一定合适。 WM_CLOSE 仅适用于 GUI 程序,即使发送 WM_CLOSE 也可能不会真正终止程序,而只会触发“你确定吗?”对话。 TerminateProcess 比较粗糙,可能会导致各种问题,想象一下你的程序正在更新数据库,它突然被杀死;这可能会使您的数据库处于中断状态甚至损坏它。有one.exetwo.exe的源码吗?

标签: c++ .net winapi mfc


【解决方案1】:

普通的 GUI 应用程序?只需发送给他们WM_CLOSE

【讨论】:

  • 这不会终止进程。这是一个请求,任何应用程序都可以愉快地忽略它。
【解决方案2】:

如果你有 one.exe 和 two.exe 的进程 ID,你可以获得进程句柄并使用 TerminateProcess 函数。这是代码示例:

HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, FALSE, dwProcessId);
if (hProcess == NULL)
{
  return;
}

UINT uExitCode;
BOOL result = TerminateProcess(hProcess, uExitCode);
CloseHandle(hProcess);

【讨论】:

    【解决方案3】:

    如果是 GUI 应用程序,您可以向其他应用程序发送 WM_CLOSE 消息。

    或者如果你想杀死另一个进程,那么使用 TerminateProcess() 函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-03
      • 1970-01-01
      相关资源
      最近更新 更多