簡體   English   中英

Windows鈎子在C#中的替代方法?

[英]Alternatives to windows hooks in C#?

我想知道何時正在積極使用任何/所有程序。

為此,我將使用與C#通訊的非托管C ++ dll。 有解釋這個過程的文章在這里

我想知道是否還有使用系統掛鈎的替代方法。

我沒有看過該庫的所有詳細信息,但它可能會對您有所幫助。

托管Windows API

C ++不需要設置全局Windows掛鈎,您只需要調用必要的winapis。

假設您只對具有與進程關聯的窗口的應用程序感興趣,那么全局鈎子將比輪詢更有效,更可靠。 例如,CMD提示可能不會生成GWH事件。

最終,最可靠,最有效的機制是在整個系統范圍內進行注入,一個良好的開端將是Microsoft Research的Detours庫。 Jefffrey Richter的經典“高級Windows編程”一書對此進行了詳細介紹,提供了3種注入機制(包括如何設置系統范圍的鈎子)。 同樣,這不需要C ++,也不一定會告訴您何時使用了應用程序。 最終,全局窗口掛鈎將變得最有意義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM