我知道有一個Windows窗體的問題,但它不能在控制檯中工作,或者至少我不能讓它工作。即使控制檯沒有焦點,我也需要捕獲按鍵。在控制檯中捕獲沒有焦點的按鍵
回答
您也可以在控制檯應用程序中創建全局鍵盤掛鉤。
下面是完整的,工作代碼:
http://blogs.msdn.com/b/toub/archive/2006/05/03/589423.aspx
您創建一個控制檯應用程序,但必須在參考System.Windows.Forms的這個工作補充。控制檯應用程序沒有理由不能引用該dll。
我剛剛使用此代碼創建了控制檯應用程序,並驗證了它獲取每個按鍵,無論控制檯應用程序是否具有焦點。
EDIT
主線程將運行Application.Run(),直到應用程序退出,例如通過調用Application.Exit()。做其他工作最簡單的方法是開始一個新的任務來執行這項工作。下面是來自鏈接的代碼,這是否
public static void Main()
{
var doWork = Task.Run(() =>
{
for (int i = 0; i < 20; i++)
{
Console.WriteLine(i);
Thread.Sleep(1000);
}
Application.Exit(); // Quick exit for demonstration only.
});
_hookID = SetHook(_proc);
Application.Run();
UnhookWindowsHookEx(_hookID);
}
注
可能提供退出控制檯應用例如一個裝置的Main()的修改後的版本當一個特殊的組合鍵被按下時,取決於您的具體需求。在
爲什麼downvote?它回答了這個問題並經過驗證可以正常工作。 –
感謝這是完美的 – Oztaco
應用程序卡在Application.Run()行。我如何將這個功能集成到現有的控制檯應用程序中,而無需等到按鍵敲擊? –
- 1. 捕獲焦點鍵盤輸入C#控制檯程序
- 2. 捕獲不帶焦點的按鍵
- 3. 控制檯窗口不在焦點時忽略按鍵C++(Windows)
- 4. 捕獲我的WPF應用程序中沒有焦點的按鍵事件
- 5. 沒有焦點的按鍵檢測
- 6. 控制檯獲取按鍵沒有Windows消息C++
- 7. GPUImage具有「點對焦」和曝光控制的視頻捕獲
- 8. pygame捕獲鍵盤事件,當窗口沒有焦點
- 9. C#2控件,即使在沒有焦點的情況下,都需要捕獲不同的按鍵。
- 10. 捕獲jquery按鍵輸入並登錄到控制檯
- 11. 在沒有焦點的情況下在QTreeWidget中捕獲keyPressEvent
- 12. 捕獲進程的所有控制檯
- 13. Firefox。 Firebug的控制檯 - 抑制 「獲得焦點」, 「失去焦點」 的消息
- 14. jquery焦點/焦點按鍵
- 15. 在TestNG中捕獲控制檯輸出?
- 16. 異常沒有顯示在控制檯,除非明確捕獲
- 17. 如何在控制檯窗口失去焦點時檢測按鍵
- 18. 控制檯使用Tkinter進行焦點時的Python捕獲事件
- 19. Powershell - 在PowerShell控制檯中捕獲鼠標點擊事件
- 20. 有沒有辦法在pygame中控制攝像頭焦點?
- 21. 如何監聽即使沒有焦點時按下的按鍵
- 22. 在linux控制檯捕獲關鍵事件
- 23. 將焦點集中在Windows中的控制檯上?
- 24. 如何在控制檯中獲取按鍵事件
- 25. 當我的應用程序沒有焦點時,如何捕獲鍵盤狀態?
- 26. ListView中的焦點控制
- 27. 無法捕獲按Ctrl + C在C#控制檯應用程序
- 28. c#控制檯蛇卡在長按鍵
- 29. 檢測按鍵在控制檯
- 30. 多個EditText - 沒有獲得焦點,沒有軟鍵盤? (Android)
你在計劃某種鍵盤記錄? – saluce
「不起作用」不是一個合適的問題描述。完全適用於無法支付的付費客戶,對於可能花20秒複製/粘貼他的代碼的程序員來說完全不合適。 –
@saluce:全球鍵盤鉤子有很多合法的原因(當然還有非法的)。 –