Ⅰ java 程序實現滑鼠點擊 鍵盤等事件
這個用MouseListener里的mouseEntered(MouseEvent
e)方法。
滑鼠進入區域就產生事件反應。
如果之前申明了點擊事件可以在entered時間里呼叫clicked事件。
Ⅱ Java寫的模擬滑鼠的游戲輔助,運行時沒法在游戲界面正常點擊
java模擬鍵盤滑鼠等操作, 我也研究過幾天,現在把學習心得分享下.
存在的問題: 現在的問題表面是游戲所在的磁碟路徑, 影響了Java的執行效果 ,其實不同的游戲你又會發現不同的BUG, 比如有的游戲,你會發現Java沒有辦法模擬鍵盤輸入,有的游戲java無法模擬滑鼠動作.有的游戲,Java模擬完全失效. 只有少部分小游戲, Java可以勉強模擬運行.
根本原因是: Java不擅長與系統底層打交道, 畢竟還隔著虛擬機, 就算使用了Java Robot類,進行簡單的鍵盤滑鼠模擬, 還是不夠穩定.
解決辦法 : 當然了還是有解決辦法的,比如在Java中可以使用下面的兩種方法:
方法一: Robot, 比較初級和粗糙, 功能弱小, 只能前台運行.
方法二:JNI/JNA技術, 調用windows API ,或者調用c語言代碼. 可以完成
!!!強烈推薦該方法,可以後台運行, 特別是JNA, 簡化了JNI, 用起來很方便
方法三: JACOB 技術, 目前比較成熟的就是大漠插件, java可以使用JACOB技術,來調用他
有些函數, 沒有辦法完成調用...
其他途徑的解決: C# 調用 大漠插件 , 基本完美解決了;
為什麼選擇C#, 因為和Java語法特別類似, 遷移方便
為什麼選擇大漠插件, 因為很多的函數 都可以直接調用調用即可, 比如找圖,找色,找字,截圖, 模擬鍵鼠操作等.
下面是學習的時候寫過的幾個小案例
我們學習的目的是為了深入了解Java技術.
Ⅲ 誰知道java的robot滑鼠控制
r.mouseMove(50, 50);
r.setAutoDelay(0);
r.mousePress(InputEvent.BUTTON1_MASK);
r.mouseRelease(InputEvent.BUTTON1_MASK);
先移到目標點,然後設置時間,時間為0,意味動作連續。然後按下 釋放滑鼠。
public void mousePress(int buttons)按下一個或多個滑鼠按鈕。應該使用 mouseRelease 方法釋放滑鼠按鈕。
參數:
buttons - Button 掩碼;一個或多個以下標志的組合:
InputEvent.BUTTON1_MASK
InputEvent.BUTTON2_MASK
InputEvent.BUTTON3_MASK
就個參數就是滑鼠的3個鍵。
你移到那裡點擊,就是在那裡點擊的,只要把時間設置很短,外界沒辦法干擾的。
Ⅳ 怎麼寫一段java代碼,實現一個操作滑鼠的功能,當我按下快捷鍵時,滑鼠自動在設定好的屏幕的某個位置單擊
樓主,請看 java.awt.Robot 這個類,有你所需要的。
void
mouseMove(int x,
int y)
將滑鼠指針移動到給定屏幕坐標。
void
mousePress(int buttons)
按下一個或多個滑鼠按鈕。
Ⅳ 滑鼠如何進行編程
在java.awt.*包下面有一個Robot類,可以生成輸入事件,例如,Robot.mouseMove 將移動滑鼠游標
這個類除了模擬滑鼠鍵盤操作以外,還可以用來截取屏幕,只演示一下怎麼模擬滑鼠鍵盤操作,具體api參考javadoc。這個演示完成了彈出QQ和移動窗口的功能。代碼如下:
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
/**
* @author bean
*
*/
public class RobotDemo {
private Robot robot = null;
public RobotDemo() {
try {
robot = new Robot();
} catch (AWTException e) {
e.printStackTrace();
}
}
/** 可以彈出QQ */
public void keyBoardDemo() {
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_Z);
robot.keyRelease(KeyEvent.VK_Z);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_ALT);
}
/** 前提是有個最大化的窗口,功能是移動到標題欄,然後拖拽到600,600的位置*/
public void mouseDemo(){
robot.mouseMove(80, 10);
robot.mousePress(KeyEvent.BUTTON1_MASK);
try {