我希望能夠記錄用戶的鼠標移動,點擊和鍵盤輸入。如果它是一個跨平臺的解決方案,那將會很棒。用Java或C++記錄鼠標移動,點擊和鍵盤輸入
我想找回這樣的(僞代碼):
鼠標移動到500,500 鼠標雙擊點擊 鼠標移動到800,300 鼠標左鍵點擊 鍵盤輸入的「Hello World 「
C++或Java有沒有可以做到這一點的任何類?如果我使用C++,我可能會使用QT框架。
編輯:
我應該說本來這個,但我想記錄的移動和點擊應用程序的GUI之外,因此在桌面上了。
我希望能夠記錄用戶的鼠標移動,點擊和鍵盤輸入。如果它是一個跨平臺的解決方案,那將會很棒。用Java或C++記錄鼠標移動,點擊和鍵盤輸入
我想找回這樣的(僞代碼):
鼠標移動到500,500 鼠標雙擊點擊 鼠標移動到800,300 鼠標左鍵點擊 鍵盤輸入的「Hello World 「
C++或Java有沒有可以做到這一點的任何類?如果我使用C++,我可能會使用QT框架。
編輯:
我應該說本來這個,但我想記錄的移動和點擊應用程序的GUI之外,因此在桌面上了。
我不認爲有一個跨平臺工具包專門用於從窗口中獲取輸入,但絕大多數工具包都提供此功能。有兩個很好的選擇:
如果你想陷阱在整個GUI系統的事件,不只是一個應用程序,有跨平臺解決方案的可能性不大。但是,事件掛鉤部分可以很容易地從錄製部分分離,因此您可以使程序的大部分跨平臺。
對於Windows,you need this 17 year old (!) document。 (男人,我老了!)
http://msdn.microsoft.com/en-us/library/ms997537.aspx:「*此內容已被刪除。」*「 –
@Martin - 更新的鏈接去通過www.archive.org –
在Windows上,這叫做Journal Record Hook。你應該用C或C++編寫鉤子部分,在java中做技術上可能是可行的,但這不是一個好主意,你希望你的鉤子程序擁有儘可能少的依賴性,並儘可能快。系統廣泛的鉤子,尤其是日誌會給鍵盤和鼠標輸入增加很多開銷,您希望儘可能地減小您的影響。
您通過使用SetWindowsHookEx傳遞WH_JOURNALRECORD
來安裝Windows掛鉤以獲取日誌記錄掛鉤。
你也可以通過安裝WH_KEYBOARD_LL
和WH_MOUSE_LL
來獲得這個工作,但是你的兩個鉤子程序將被單獨調用,你將不得不編寫自己的代碼來按順序排列事件。
我懷疑你會找到一個跨平臺的解決方案。
聽起來像Qt可能允許您實現延伸到應用程序之外的窗口系統的事件過濾器。另請參見Qt - top level widget with keyboard and mouse event transparency?
您是否需要記錄系統範圍內的輸入或僅在您的應用程序的主窗口中? – finnw
看到這個類似的問題:http://stackoverflow.com/questions/2147903/retrieve-window-handle-and-press-button-programatically – lsalamon
這是問題是爲c# – Joe