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

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

評論