最近在玩一個小游戲,類似于qq炫舞一樣的,但是比哪個簡單很多,只需要一直不停的按一個鍵就行了,于是我準備撰寫一個程式,主要的功能就是鍵盤不停的按一個按鍵,于是去了解了java.awt.Robot類,寫了一段代碼,經過測驗也都沒什么問題,然后準備去游戲里面試驗一番,然后問題出現了——程式在外面運行的時候都沒問題,不管是在記事本還是其他的時候都能正常的做到一直按一個按鍵,但在點擊進入游戲界面后,代碼就不靈了,我嘗試打開游戲里面的對話框,也沒有任何輸出,就是代表在游戲里,沒辦法正常運行程式,但一點到外面就可以了。我想可能是代碼和游戲還個虛擬機呢,所有想知道java有沒有什么辦法可以直接做到控制鍵盤這些硬體的輸出,比如呼叫windows API或者怎么,就是不管什么情況下都做到類似真正的按下某一個按鍵一樣。希望可以幫忙解答一下。
uj5u.com熱心網友回復:
或者有沒有更底層的api可以完成鍵盤的模擬。uj5u.com熱心網友回復:
你可以試一下用管理員身份運行,或者把專案打包成exe,以管理員身份運行,我之前給你做過類似的,但是我不止是操作鍵盤,當時那款游戲還要操作滑鼠,然后就會出現另外一個問題,明明坐標是對的 但是每次對應的時候都會出現偏差,可能是因為游戲本身也做了保護,因為robot類并不是真實的硬體輸入,游戲做了保護就要想起他辦法了uj5u.com熱心網友回復:
后來我使用C語言用keybd_event實作了,哪個就是必須用管理員身份運行,游戲里面打開聊天視窗能做到模擬鍵盤輸出了,但是在游戲里面的小游戲的時候按鍵就沒有用了,估計是游戲有保護機制或者觸發條件不是正常的那種,里面太復雜了哈哈哈,勉強在游戲里實作打字算了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/70512.html
標籤:Java相關
