【发布时间】:2019-11-13 12:24:11
【问题描述】:
我正在监视 Windows 机器上的进程活动。我从 MSDN 获得了一个有用的链接,上面写着重要的 Events to Monitor 与此信息我开始使用 WINAPI 调用构建一小段代码 - SetWinEventHook 代码如下
但是,当遇到该链接Events to Monitor上列出的那些事件时,我无法控制它
任何人都可以建议,为什么我无法收到这些提到的事件
LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
switch (iMsg)
{
case WM_CREATE:
{
HWINEVENTHOOK st;
// EVENT_SYSTEM_MENUSTART
st = SetWinEventHook(0x44E, 0x44E, NULL, WinEventProc, 0, 0, WINEVENT_SKIPOWNPROCESS);
break;
}
case WM_SHOWWINDOW:
{
//MessageBox(hwnd, L"WM_SHOWWINDOW", L"Message", MB_OK);
break;
}
case WM_DESTROY:
{
PostQuitMessage(0);
ExitProcess(0);
break;
}
}
return DefWindowProc(hwnd, iMsg, wParam, lParam);
}
void CALLBACK WinEventProc(HWINEVENTHOOK hWinEventHook, DWORD event, HWND hwnd, LONG idObject, LONG idChild, DWORD idEventThread, DWORD dwmsEventTime)
{
char buffer[100] = {"\0"};
sprintf_s(buffer, "Event [%d]\n Handle [%p]\n idEventThread [%d]\n EventTime [%d]", event, hwnd, idEventThread, dwmsEventTime);
MessageBoxA(hwnd, buffer, "Message", MB_OK);
}
【问题讨论】:
-
没有。控制面板 > 管理工具 > 事件查看器。诸如此类的事件。开始reading here。
-
@HansPassant 你的意思是,无论 MSDN 提到什么(链接:Events_to_Monitor),我都不能直接在程序中使用?