是否可以找出MessageBox属于哪个进程?如果是,怎么样?
答案 0 :(得分:2)
您想使用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;
}
不知道你为什么要这个过程。我能想到的原因:
所有这些都具有优越性更优化的替代解决方案。
答案 1 :(得分:1)
另一个答案是程序化解决方案。如果这是一次性的调试,你可以选择带有Spy ++的窗口,从属性窗口中获取进程ID,然后在任务管理器中查找该进程。