检测MessageBox属于哪个进程

发布于 2024-12-02 13:37:42 字数 38 浏览 1 评论 0原文

是否可以找出MessageBox属于哪个进程?如果是,怎么办?

Is it possible to find out to which process a MessageBox belongs? If yes, how?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

懒的傷心 2024-12-09 13:37:43

另一个答案给出了程序化解决方案。如果这是调试的一次性任务,您可以使用 Spy++ 选择窗口,从属性窗口获取进程 ID,然后在任务管理器中查找进程。

Another answer gives the programmatic solution. If this is a one-off thing for debugging, you can choose the window with Spy++, get the process ID from the properties window, and then look up the process in Task Manager.

傾旎 2024-12-09 13:37:42

您想要使用GetWindowThreadProcessId。这是一个例子。

#include <windows.h>

static const TCHAR g_cszClass = TEXT("#32770"); // dialog box class

// returned handle must be closed with CloseHandle() when no longer used
HANDLE GetMessageBoxProcess(__in_z LPCTSTR lpcszTitle, __in DWORD dwAccess)
{
  HWND    hWnd;
  DWORD   dwProcessId = 0;
  HANDLE  hRET;

  hWnd = FindWindow(g_cszClass, lpcszTitle);
  if (hWnd != NULL)
  {
    GetWindowThreadProcessId(hWnd, &dwProcessId);
    if (dwProcessId != 0)
      hRET = OpenProcess(dwAccess, FALSE, dwProcessId);
  }
  return hRET;
}

但不确定为什么你想要这个过程。我能想到的原因:

  • 完全终止消息框
  • 检测某个进程
  • 检测某个消息框

所有这些都具有优越性更优化的替代解决方案。

You want to use GetWindowThreadProcessId. Here is an example.

#include <windows.h>

static const TCHAR g_cszClass = TEXT("#32770"); // dialog box class

// returned handle must be closed with CloseHandle() when no longer used
HANDLE GetMessageBoxProcess(__in_z LPCTSTR lpcszTitle, __in DWORD dwAccess)
{
  HWND    hWnd;
  DWORD   dwProcessId = 0;
  HANDLE  hRET;

  hWnd = FindWindow(g_cszClass, lpcszTitle);
  if (hWnd != NULL)
  {
    GetWindowThreadProcessId(hWnd, &dwProcessId);
    if (dwProcessId != 0)
      hRET = OpenProcess(dwAccess, FALSE, dwProcessId);
  }
  return hRET;
}

Not sure why you'd want the process though. Reasons I can think of:

  • terminating the message box completely
  • detecting a process
  • detecting a certain message box

all of which have superior & more optimal alternative solutions.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文