回答
我不完全理解你的問題,但是如果你想註冊全局鍵而不管你的窗口焦點,你可以使用RegisterHotKey Windows API。
如果我使用RegisterHotKey註冊[Ctrl + V],那麼用戶仍然可以使用此鍵盤快捷鍵從其他應用程序中的剪貼板中過去,或者我的程序會攔截它嗎?我寫這個的原因是,程序會自動將下一個項目排入剪貼板,因此用戶只需反覆按[Ctrl + v](他們正在從應用到應用進行數據輸入)。 – Ozzah
根據RegisterHotKey的MSDN描述,它應該可以全局工作,所以即使它沒有激活,你也應該能夠排列程序中的所有消息。但是我不確定Ctrl + V,因爲它已經在系統中註冊了。你試一試。 –
我試過了,我的應用程序捕獲了Ctrl + V,並停止了焦點窗口接收它,這不是我想要的:http://stackoverflow.com/questions/6838540/c-detecting-ctrlv-with-registerhotkey-but-不要攔截它 – Ozzah
一個很簡單的方法就是使用GetASyncKeyState。 我只用於遊戲,但我認爲它會在這裏工作。
導入這樣的:
[DllImport("user32.dll")]
static extern short GetAsyncKeyState(System.Windows.Forms.Keys vKey);
然後你可以做(在一個循環或定時器)
if(GetAsyncKeyState(Keys.ControlKey) && GetAsyncKeyState(Keys.K))
{
//DO SOME STUFF!!
}
如果你需要它只有一次,當它壓發生,你可以聲明
bool oldK; //at class scope
然後在你的循環/定時器
if(!oldK && GetAsyncKeyState(Keys.ControlKey) && GetAsyncKeyState(Keys.K))
{
//DO SOME STUFF!!
}
oldK = GetAsyncKeyState(Keys.K);
這聽起來像是一種判斷當前鍵是否被按下的方式,而不是在按下時被通知的方式。 – Gabe
結賬本文Detecting and recording key strokes in C#
你需要編寫的代碼到一個類所這個類添加到Windows service.Instaniate到啓動(窗口)方法service.olace緩衝代碼到一些定時器 例如
this.timerBuffFlush = new System.Timers.Timer();
this.timerBuffFlush.Enabled = true;
this.timerBuffFlush.Elapsed += new System.Timers.ElapsedEventHandler(this.timerBuffFlush_Elapsed);
this.timerBufferFlush.Interval = 60000;
}
- 1. 監視器擊鍵
- 2. 在macOS上監視擊鍵
- 3. 監視器的/ var/log/messages文件的特定關鍵字
- 4. 谷歌anlytics監視特定的URL
- 5. 特定進程的API監視
- 6. Java中的鍵監聽器/鍵綁定
- 7. Get-Eventlog - 監視特定事件ID
- 8. CoreLocation:一次只監視特定區域
- 9. 監聽點擊WPF中的特定元素?
- 10. 如何等待特定的擊鍵?
- 11. DataGridView右鍵單擊ContextMenuStrip的特定列
- 12. 在(Windows)C中監視特定進程的CPU和內存消耗?
- 13. 線程監視C#
- 14. 如何監視數據庫中的特定列
- 15. 監視Java對象在特定方法中的分配/釋放
- 16. 如何監視特定文件以查看Mercurial中的更改?
- 17. 在git中的特定文件/目錄設置監視器
- 18. 使用NodeJS監視按鍵/按鍵
- 19. 如何同擊鍵的事件監聽
- 20. 剪切板監視的C#
- 21. 單擊按鈕後,按鍵不受監視
- 22. c#propertyGrid鍵監聽器
- 23. 監測特定的RSS
- 24. C#中的文件系統監視器
- 25. c#中的線程監視器類#
- 26. 監視C#中的命名管道
- 27. 監控網頁中的特定字段
- 28. 特定的鍵
- 29. 特定鍵字典的總和值C#
- 30. 阻止來自特定鍵盤的擊鍵
看一看這裏:http://stackoverflow.com/questions/1100285/c-how-to-detect-the-currently-pressed-key/1927644#1927644 –
我認爲的總稱這是** Keylogger ** – V4Vendetta
Yip聽起來像一種鍵盤記錄器給我。我看到了一種非常簡單的方式來在python中執行此操作,只有20行代碼或其他內容,但是在另一天。 :) – Jethro