[英]Capture key events from a Windows Service in C#
我必須用 C# 編寫一個應用程序來監聽任何被按下的鍵。 實際上,我有一個條形碼掃描儀發送“按鍵按下”事件,我需要聽它……它的作用超出了我的問題范圍。
我的安全要求是不允許以任何形式或形式對機器進行任何登錄,並且這必須作為 Windows 服務運行。 用戶將啟動機器並走開(即,沒有桌面會話)。
我假設我將不得不為此不受管理。
鑒於安全要求,這甚至可能嗎? 如果是這樣,任何關於從哪里開始的指示都會很棒。
提前致謝,傑
如果您需要查看所有應用程序的鍵盤按下情況,系統范圍的 Hooks 將是正常使用的方法,但問題是 Vista 及更高版本中的安全更改使 hooks 變得不太有用。 一個進程不能在更高的完整性級別掛鈎另一個進程,因此不能保證您會看到所有事件。
但是,如果您只需要查看進入特定應用程序的事件(讀取條形碼的應用程序),那么只要您可以識別該進程,線程特定的掛鈎就足夠了,並且不會出現完整性問題。
您將必須學習 pInvoke 並結合學習如何查找在較低級別的操作系統中生成的正確事件。 通過使用 pInvoke 調用 user32.dll,您的托管代碼可以通過鈎子過濾這些事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.