【问题标题】:Is there any winapi call to get notify when an event occured事件发生时是否有任何 winapi 调用来获取通知
【发布时间】: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),我都不能直接在程序中使用?

标签: winapi msdn


【解决方案1】:

SetWinEventHook :设置一个范围的事件挂钩函数 事件。

关于一系列活动,请参考Event Constants

本主题描述由操作生成的事件 系统和服务器应用程序。常数列于 按字母顺序。

在使用这些事件之前,客户端应用程序应该使用 Accessible 事件观察器来验证这些事件是否被 UI 元素使用。

有关一般事件的更多信息,请参阅什么是 WinEvent? 系统级和对象级事件。有关更多信息 系统发送的事件,见附录A:支持的用户 界面元素参考。

可以说SetWinEventHook没有那么强大。它可以检测到的事件不包括你提到的the malicious activities

【讨论】:

  • 感谢 Strive,我的问题更清楚了,您的回答对我更有用。我会了解你提到的这些细节。我还想问你一件事,我怎样才能包含这些事件Appendix L: Events to Monitor 以使用编程方式(winapi)进行监控。我没有足够的线程来执行此操作。
  • @YuvrajTakey 正如汉斯所说,除了使用事件查看器之外,没有 winapi 可以实现这一点。
  • 好的,这意味着只剩下一个选项是监视那些(附录L:要监视的事件)类型的事件的“EventViewer Log”
  • @YuvrajTakey 是的。这些事件并非仅由少数 API 监控。它们(附录 L:要监控的事件)涉及很多我们可能不会接触到的知识。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-22
  • 1970-01-01
  • 2011-09-16
相关资源
最近更新 更多