是否有任何winapi调用来在事件发生时获得通知

问题描述 投票:-2回答:1

我正在监视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);
}

我正在监视Windows计算机上的进程活动。我从MSDN获得了一个有用的链接,其中说出了要监视的重要事件,并使用此信息开始使用WINAPI ...

winapi msdn
1个回答
0
投票

SetWinEventHook:在以下范围内设置事件挂钩功能事件。

© www.soinside.com 2019 - 2024. All rights reserved.