最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Java控制鼠標(biāo)和鍵盤(pán)的方法

2021-08-04 22:16 作者:天羽ちよこ  | 我要投稿

背景

幾年前我還在玩艦C的時(shí)候,被艦C頻繁收遠(yuǎn)征的操作給煩透了,后來(lái)搜到了一個(gè)自動(dòng)收遠(yuǎn)征的輔助工具,用了一段時(shí)間,不是一般的輕松。我簡(jiǎn)單研究了一下它的原理和實(shí)現(xiàn)方式,大概是通過(guò)識(shí)別出各個(gè)按鈕圖片的位置并模擬鼠標(biāo)點(diǎn)擊來(lái)操作的,Java也可以通過(guò)編碼來(lái)控制鍵盤(pán)和鼠標(biāo),本文將介紹Java里操作鍵盤(pán)鼠標(biāo)的兩種方式,并且會(huì)運(yùn)用在某游戲的自動(dòng)練級(jí)上。

Robot類(lèi)

Java的Robot類(lèi)提供了很多方法,包含了鼠標(biāo)鍵盤(pán)以及屏幕的一些通用操作,一般用于自動(dòng)化測(cè)試或者其他相關(guān)的場(chǎng)景中,下面是幾個(gè)示例

一、獲取鼠標(biāo)當(dāng)前的位置

二、模擬鼠標(biāo)點(diǎn)擊和鍵盤(pán)按鍵

Robot robot = new Robot();
robot.mouseMove(100, 100);
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_SHIFT);
robot.keyPress(KeyEvent.VK_ESCAPE);
robot.keyRelease(KeyEvent.VK_ESCAPE);
robot.keyRelease(KeyEvent.VK_SHIFT);
robot.keyRelease(KeyEvent.VK_CONTROL);

上面是移動(dòng)鼠標(biāo)以及模擬按鍵(示例中的按鍵是打開(kāi)任務(wù)管理器)的代碼。


在高分辨率(2k或者4k分辨率)下,java的robot相關(guān)類(lèi)獲取到的屏幕位置、鼠標(biāo)位置等數(shù)值均不準(zhǔn)確,需要對(duì)數(shù)值乘上一個(gè)固定的數(shù)值。

如果通過(guò)這個(gè)功能做一個(gè)輔助工具,需要滿(mǎn)足這樣的條件:鼠標(biāo)點(diǎn)擊的位置必須是固定的,否則就需要人工調(diào)整位置或者縮放,我找了一張少女前線(xiàn)的活動(dòng)圖來(lái)測(cè)試,編碼思路如下:

  1. 需要錄制鼠標(biāo)點(diǎn)擊位置以及間隔時(shí)間的程序,并輸出這些數(shù)值

  2. 讀取上一步輸出的數(shù)值,調(diào)用對(duì)應(yīng)的鼠標(biāo)點(diǎn)擊方法

下面是我最終的編碼結(jié)果(未包含錄制鼠標(biāo)點(diǎn)擊的程序)

這樣每天的刷活動(dòng)物資的任務(wù)就可以交給這個(gè)程序了。

等到活動(dòng)結(jié)束后,我還想利用它進(jìn)行練級(jí)等操作,僅僅靠鼠標(biāo)移動(dòng)點(diǎn)擊是不能滿(mǎn)足要求了,我找到了sikuli這個(gè)框架。

Sikuli

sikuli也是一個(gè)自動(dòng)化框架,它的一個(gè)優(yōu)點(diǎn)是可以傳入圖片或者文字,能夠直接定位到圖片或者文字在屏幕上的位置,我就又重構(gòu)了一下。考慮到少前操作的一些特點(diǎn),我簡(jiǎn)單設(shè)計(jì)了一個(gè)腳本:

腳本支持等待和點(diǎn)擊某個(gè)元素、睡眠指定時(shí)間、條件操作等等。我將圖片放入指定的目錄,腳本中只需要寫(xiě)圖片的文件名就行了。

腳本還支持引用別的腳本:

下面是腳本解析和執(zhí)行的部分代碼:

總結(jié)

本文簡(jiǎn)單介紹了Java的兩種控制鼠標(biāo)鍵盤(pán)的方法,通過(guò)這些,可以實(shí)現(xiàn)部分游戲的自動(dòng)化重復(fù)操作,比如少女前線(xiàn)的練級(jí)、刷資源等等。Java有些不足的地方是,在程序運(yùn)行的過(guò)程中,電腦是不能做其他操作的,否則就會(huì)影響程序正常運(yùn)行,不過(guò)對(duì)我來(lái)說(shuō),這已經(jīng)足夠了。

Java控制鼠標(biāo)和鍵盤(pán)的方法的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
莱西市| 本溪市| 七台河市| 武定县| 赣榆县| 信宜市| 如东县| 两当县| 汤阴县| 治县。| 巴楚县| 油尖旺区| 乌海市| 尚义县| 绿春县| 肥城市| 齐齐哈尔市| 兴隆县| 海安县| 鄯善县| 安平县| 驻马店市| 炎陵县| 濉溪县| 三都| 新巴尔虎右旗| 延川县| 南丰县| 延边| 崇明县| 从江县| 兰溪市| 荔波县| 图木舒克市| 新田县| 清徐县| 正安县| 无锡市| 通化县| 蓝山县| 蚌埠市|