要搞定外設(shè)鼠標(biāo)點擊屏幕上的指定位置,就需要確定鼠標(biāo)指針在屏幕上絕對坐標(biāo). 理論上HID是可以發(fā)送絕對坐標(biāo)使鼠標(biāo)指針直接移動到指定的位置.但是目前我還沒搞明白要怎么發(fā)送16進制的數(shù)據(jù)才能使用絕對坐標(biāo). 但偶然間找到了一個安卓VIEW的方法可以監(jiān)聽到鼠標(biāo)指針的位置...順便記錄一下這個方法.
利用view的OnGenericMotionListener方法給view設(shè)置一個監(jiān)聽,當(dāng)鼠標(biāo)在這個view上移動的時候. view就能獲取到鼠標(biāo)的絕對位置.但是缺點就是在安卓8.0 以后,懸浮窗全屏的時候是無法覆蓋到狀態(tài)欄的, 這也就導(dǎo)致鼠標(biāo)在狀態(tài)欄上移動的時候無法獲取到鼠標(biāo)的坐標(biāo)...
我也沒有找到比較好的方法來覆蓋掉狀態(tài)欄...安卓7.0倒是可以覆蓋到狀態(tài)欄. 在懸浮窗覆蓋到的地方移動鼠標(biāo)指針,就可以獲取到鼠標(biāo)指針的實時位置了.
在執(zhí)行項目的時候,可以先開啟一個"全屏"的懸浮窗,然后通過hid協(xié)議讓鼠標(biāo)移動一個像素.獲取到鼠標(biāo)的絕對位置...然后再關(guān)閉懸浮窗即可,這樣獲取到第一個鼠標(biāo)的確切坐標(biāo)后. 后面就能通過計算得到所有的絕對位置. 從而和autojs配合來點擊和滑動操作.
以下是懸浮窗的代碼...
var w = floaty.rawWindow(
<frame id="top" bg="#CC000000" />
);
ui.run(()=>{
//設(shè)置懸浮窗全屏
w.setSize(-1, -1);
//要設(shè)置懸浮窗攔截點擊事件,才可以監(jiān)聽到鼠標(biāo)移動事件
w.setTouchable(true);
});
var points = {}
w.top.setOnGenericMotionListener(function(v, event) {
points.x = event.getX().toFixed(2);
points.y = event.getY().toFixed(2);
console.log("鼠標(biāo): " , points);
return false;
});
setTimeout(() => {
w.close();
}, 60000);
希望大家有個愉快的周末....
-
鼠標(biāo)
+關(guān)注
關(guān)注
6文章
593瀏覽量
40569 -
VIEW
+關(guān)注
關(guān)注
0文章
7瀏覽量
10071 -
安卓
+關(guān)注
關(guān)注
5文章
2149瀏覽量
58455
發(fā)布評論請先 登錄
獲取鼠標(biāo)坐標(biāo)小程序
Labview x,y坐標(biāo)獲取并調(diào)用
在已有曲線的xy圖中,如何根據(jù)鼠標(biāo)獲取的x坐標(biāo)得到在曲線中該坐標(biāo)對應(yīng)y的值
求助,如何獲取光標(biāo)處顏色,就像獲取鼠標(biāo)坐標(biāo)那樣?
點擊鼠標(biāo),獲取XY當(dāng)前位置坐標(biāo)
CH9329絕對鼠標(biāo)在安卓下無效是什么原因?
CH573模擬USB鼠標(biāo)如何控制屏幕指針的絕對坐標(biāo)?
淺析安卓系統(tǒng)的三大Root方式
LabVIEW當(dāng)鼠標(biāo)懸停在圖形曲線上時顯示坐標(biāo)
基于LabVIEW的鼠標(biāo)位移測量技術(shù)研究

安卓獲權(quán)獲取的技術(shù)原理
使用LabVIEW的鼠標(biāo)坐標(biāo)反饋

評論