五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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ó)家法律
洛川县| 太湖县| 于田县| 泉州市| 灵山县| 湄潭县| 社旗县| 梅河口市| 专栏| 田阳县| 漳州市| 连平县| 南靖县| 栾川县| 泌阳县| 治县。| 阳山县| 丰城市| 楚雄市| 庆城县| 封开县| 庐江县| 孙吴县| 霞浦县| 齐齐哈尔市| 瑞安市| 晴隆县| 上林县| 长岭县| 汕头市| 宕昌县| 泽州县| 上饶县| 台江县| 泽普县| 河津市| 淮南市| 新泰市| 翁源县| 那坡县| 汤原县|