羅技驅(qū)動實(shí)現(xiàn)鼠標(biāo)移動、點(diǎn)擊(GHUB\LGS通用)

本文會介紹:
1. 羅技驅(qū)動里面鼠標(biāo)移動、點(diǎn)擊的基礎(chǔ)公式;
2. 獲取屏幕坐標(biāo)的兩種方法;
3.?如何實(shí)現(xiàn)鼠標(biāo)的移動、點(diǎn)擊這兩種簡單的操作;
4. 優(yōu)化;

基礎(chǔ)公式

GetMousePosition()
-- 獲取當(dāng)前絕對坐標(biāo)
MoveMouseTo()
-- 將光標(biāo)移動到指定的絕對坐標(biāo)
PressAndReleaseMouseButton(1)
-- 點(diǎn)擊鼠標(biāo)左鍵

獲取坐標(biāo)的兩種方法

方法一:直接利用驅(qū)動獲得絕對坐標(biāo)

以上可以實(shí)現(xiàn)當(dāng)大寫鍵打開時(shí),點(diǎn)擊鼠標(biāo)左鍵,獲得當(dāng)前鼠標(biāo)絕對坐標(biāo)并且顯示在驅(qū)動下方的控制臺中,獲取完后關(guān)閉大寫鍵,不會有多余坐標(biāo)。
若看不到控制臺:
GHUB點(diǎn)擊上方“瀏覽”,勾選“控制臺”就能看到;LGS點(diǎn)擊上方“查看”,勾選“輸出”
方法二:利用截圖獲得精確到像素點(diǎn)的絕對坐標(biāo)
羅技有自己的一套坐標(biāo),任何電腦屏幕左上角的坐標(biāo),在羅技看來都是(0,0),右下角坐標(biāo)都是(65535,65535),若不考慮四舍五入的情況,屏幕正中間的坐標(biāo)就是(32767,32767)
這也是為什么你用方法一獲得的坐標(biāo)可以有5位數(shù)的原因。
用qq或者微信截圖,截取你的整個(gè)屏幕,保存為圖片,打開方式選擇系統(tǒng)自帶的“畫圖”,在底部偏左位置,你可以看到圖片為1920*1080像素,實(shí)際上就是你自己的電腦分辨率,隨著光標(biāo)在圖片上移動,左下角的像素會一直在變化,因?yàn)閳D片可以放大,所以可以精確到像素點(diǎn)。

假設(shè)我當(dāng)前的光標(biāo)在屏幕中間,為(960,540)
960?/?1920?*?65535?=?32767
540?/?1080?*?65535?=?32767? ? ?不要小數(shù)點(diǎn)
以此類推,你屏幕上每個(gè)像素點(diǎn)對應(yīng)到羅技的絕對坐標(biāo)都可以計(jì)算出來

實(shí)現(xiàn)移動與點(diǎn)擊


以上實(shí)現(xiàn)了當(dāng)鼠標(biāo)側(cè)鍵4按下后,移動到四個(gè)角并且點(diǎn)擊
以此類推,坐標(biāo)與延遲都可以自己修改
但是Sleep()這個(gè)函數(shù),雖然明面上說的是單位是毫秒
但是在win10 1909 以后的系統(tǒng)版本,Sleep(1) 實(shí)際上是15.6ms(出自camend001)

優(yōu)化


如果需要點(diǎn)擊的坐標(biāo)很多的話,像這樣把移動與點(diǎn)擊寫進(jìn)一個(gè)子程序,后續(xù)就會很方便,不用一直MoveMouseTo()、PressAndReleaseMouseButton()
也不用取坐標(biāo)再記下來,用截圖看坐標(biāo),直接填寫就OK
不知道能不能復(fù)制,或者復(fù)制了能不能用,不能的話建議自己對照著敲一遍,就當(dāng)練習(xí)了
注意大小寫、英文標(biāo)點(diǎn)符號,-- 是注釋
如果這篇文章能夠幫助到你,期待你的點(diǎn)贊與評論。