久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何應用SetWinEventHook截獲Windows事件

161次閱讀
沒有評論

共計 1025 個字符,預計需要花費 3 分鐘才能閱讀完成。

這篇文章主要介紹如何應用 SetWinEventHook 截獲 Windows 事件,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

用 SetWindowsHookEx 可以截獲 Windows 中的消息,然而對于更高級一點的 Windows 事件 (如: 彈出菜單事件、ATL+TAB 切換事件等等), 可以用 SetWinEventHook 來截獲.

SetWinEventHook 創建的鉤子也分為進程內和進程外兩種, 進程內鉤子效率高但必須以 DLL 形式存在,因為其須映射到別的進程中. 在這個 Demo 中我采用進程外鉤子來截獲所有事件。

鉤子例程如下所示:

VOID CALLBACK WinEventsProc( HWINEVENTHOOK hWinEventHook, DWORD dwEvent, HWND hwnd, LONG idObject, LONG idChild, DWORD dwEventThread, DWORD dwmsEventTime )
{
 switch( dwEvent )
 {
 case EVENT_SYSTEM_SWITCHSTART:
 AtlMessageBox( NULL, _T( Alt+Tab 開始) ); 
 break;

 case EVENT_SYSTEM_SWITCHEND:
 AtlMessageBox( NULL, _T( Alt+Tab 結束) ); 
 break;

 case EVENT_SYSTEM_MENUPOPUPSTART:
 AtlMessageBox( NULL, _T( 彈出菜單開始) ); 
 break;

 case EVENT_SYSTEM_MENUPOPUPEND:
 AtlMessageBox( NULL, _T( 彈出菜單開始) ); 
 break;

 
 
 }
}

安裝進程外 HOOK(截獲所有進程的所有事件):

HWINEVENTHOOK hHook = ::SetWinEventHook( EVENT_MIN , EVENT_MAX , NULL, WinEventsProc, 0, 0, WINEVENT_OUTOFCONTEXT );

使用完一定要記得卸載 HOOK:

::UnhookWinEvent( hHook );

以上是“如何應用 SetWinEventHook 截獲 Windows 事件”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計1025字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 醴陵市| 靖州| 酉阳| 托里县| 会昌县| 兰考县| 永春县| 镇沅| 泸西县| 广元市| 东城区| 城口县| 启东市| 吴忠市| 依安县| 安丘市| 新和县| 罗城| 潞城市| 吉首市| 佛坪县| 沿河| 宜兰市| 广河县| 霍城县| 镇沅| 镇原县| 延川县| 那曲县| 常宁市| 赤峰市| 印江| 大埔县| 莆田市| 大洼县| 双桥区| 突泉县| 富宁县| 通化市| 鄱阳县| 日土县|