衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

USBHID鼠標(biāo)按鍵及數(shù)據(jù)傳遞格式

汽車(chē)電子技術(shù) ? 來(lái)源:安卓腳本 ? 作者: Mr.Yu ? 2023-03-03 13:45 ? 次閱讀

最近業(yè)余時(shí)間了解了下HID鍵鼠設(shè)備協(xié)議相關(guān)的東西.主要想通過(guò)安卓手機(jī)連接HID設(shè)備完成點(diǎn)擊和滑動(dòng)動(dòng)作.

起因是一些app屏蔽了無(wú)障礙和ADB方式的點(diǎn)擊滑動(dòng), 但沒(méi)有屏蔽藍(lán)牙鼠標(biāo)的按鍵動(dòng)作. 所以想做一個(gè)HID的驅(qū)動(dòng)搭配Autojs腳本來(lái)實(shí)現(xiàn)一些非常規(guī)操作...

就是這么個(gè)東西...然后連接到手機(jī)上為其供電...

圖片圖片

但我是個(gè)小白, 對(duì)于HID這種底層的協(xié)議,沒(méi)有絲毫的基礎(chǔ).通過(guò)不斷的查資料,終于今天邁出了第一步...特此記錄一下

ps: 百度真的是個(gè)垃圾搜索引擎,搜資料能用google還是用google吧,用百度簡(jiǎn)直就是浪費(fèi)生命

我用的這個(gè)HID設(shè)備是別人特制的一個(gè)小模塊,大概30塊錢(qián)左右,有鼠標(biāo)和鍵盤(pán)功能,這里我就不掛鏈接了. 所以發(fā)送數(shù)據(jù)與普通的HID設(shè)備不同,需要在末尾多加一個(gè)字節(jié)的數(shù)據(jù).

00000001 ----> 代表調(diào)用鍵盤(pán)按鍵

00000010 ----> 代表調(diào)用鼠標(biāo)按鍵

然后普通的HID鼠標(biāo)發(fā)送的數(shù)據(jù)是 4 個(gè)字節(jié) (1個(gè)字節(jié)即為: 1 Byte = 8 bit)所以 00 00 00 00到11 11 11 11之間的數(shù)占用1個(gè)字節(jié)(便于區(qū)分我加了空格)代表的10進(jìn)制是 0 到 255

按照常規(guī)的計(jì)數(shù)規(guī)則, 左邊的數(shù)字單位要比右邊的數(shù)字單位大.

所以呢在用二進(jìn)制的時(shí)候. 由于數(shù)字比較長(zhǎng), 劃分的時(shí)候,我們習(xí)慣了從左往右的順序分組, 這里會(huì)造成混淆, 所以需要明白 右邊是頭 左邊是尾 最右邊的是第一個(gè)字節(jié)

BYTE3     BYTE2    BYTE1     BYTE0
00000000  00000000  00000000  00000000

其數(shù)據(jù)劃分和鍵位說(shuō)明. 我畫(huà)了一張圖, 字寫(xiě)的很爛. 湊合著看看吧~圖片圖片圖片

圖片

因?yàn)槲屹I(mǎi)的這個(gè)設(shè)備是自制的.所以還有一個(gè)BYTE4 第五個(gè)字節(jié)數(shù)據(jù)是表明前四個(gè)字節(jié)要發(fā)給鍵盤(pán)還是鼠標(biāo)的.

安卓設(shè)備屏幕處在坐標(biāo)系的第四象限, X軸不變, Y軸向下為正. 所以Y軸的坐標(biāo)正數(shù)是向下移動(dòng), 負(fù)數(shù)是向上移動(dòng).

這里需要說(shuō)一下怎么表示2進(jìn)制的負(fù)數(shù):

圖片

驗(yàn)證一下是否正確, 找個(gè)windows計(jì)算器

圖片

圖片

所以我要是想讓鼠標(biāo)向右移動(dòng)10像素需要發(fā)送的五個(gè)字節(jié)數(shù)據(jù)為:

02 00 00 0A 00 --> 鼠標(biāo)向右移動(dòng)10像素

02 00 00 F6 00 --> 鼠標(biāo)向左移動(dòng)10像素

02 00 00 0A 01 --> 按住鼠標(biāo)向右移動(dòng)10像素

02 00 00 00 00 --> 抬起所有按鍵

理論上Y軸的移動(dòng)是修改第三個(gè)字節(jié)的數(shù)據(jù). 但是我發(fā)現(xiàn)我這個(gè)小模塊,我修改了第三字節(jié)的數(shù)據(jù)后. 不會(huì)生效...不知道為什么,剩下的再研究一下吧.

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    esp-idf傳遞鼠標(biāo)數(shù)據(jù)延遲很大的原因?

    請(qǐng)假一下,用espidf通過(guò)wifi傳遞鼠標(biāo)鍵盤(pán)時(shí)間,延遲很大,可能是哪地方的問(wèn)題呢?采用select機(jī)制,鼠標(biāo)數(shù)據(jù)通過(guò)uart回來(lái),然后通過(guò)Wi-Fi
    發(fā)表于 06-14 06:19

    共享變量 數(shù)據(jù)傳遞

    labview生成安裝程序(里面數(shù)據(jù)傳遞用共享變量) 在本電腦上可以傳遞數(shù)據(jù),安裝到其他電腦上無(wú)法傳遞數(shù)據(jù),何解?
    發(fā)表于 07-08 13:57

    通過(guò)隊(duì)列實(shí)現(xiàn)vi之間數(shù)據(jù)傳遞

    `各位高手,請(qǐng)教下如何用隊(duì)列實(shí)現(xiàn)vi之間的數(shù)據(jù)傳遞,最好能給出個(gè)例子,我是初學(xué)者,謝謝`
    發(fā)表于 09-08 11:01

    如何利用ucos編程進(jìn)行數(shù)據(jù)傳遞

    :int main (void){各種初始化while(1){ 觸摸屏 LCD刷新 串口通信 } }就像這個(gè)小例子,觸摸屏按鍵的操作和串口的數(shù)據(jù)要顯示在LCD上。換做u/cos II的話(huà),就是建立3個(gè)任務(wù),然后之間再有一些數(shù)據(jù)傳遞
    發(fā)表于 04-04 06:36

    Vue中父組件與子組件之間的數(shù)據(jù)傳遞

    Vue中父組件(vue實(shí)例)與子組件(component)之間的數(shù)據(jù)傳遞
    發(fā)表于 06-01 17:28

    鴻蒙分布式任務(wù)調(diào)度——數(shù)據(jù)傳遞

    鴻蒙分布式任務(wù)調(diào)度之數(shù)據(jù)傳遞
    發(fā)表于 06-12 17:29

    藍(lán)牙實(shí)現(xiàn)數(shù)據(jù)傳遞需要做些什么?

    實(shí)現(xiàn)數(shù)據(jù)傳遞需要做些什么?需要用到什么?怎么才能讓數(shù)據(jù)傳遞到另一端?服務(wù)端客戶(hù)端
    發(fā)表于 03-02 07:15

    espidf傳遞鼠標(biāo)數(shù)據(jù)延遲很大是為什么呢?

    請(qǐng)假一下,用espidf通過(guò)wifi傳遞鼠標(biāo)鍵盤(pán)時(shí)間,延遲很大,可能是哪地方的問(wèn)題呢?采用select機(jī)制,鼠標(biāo)數(shù)據(jù)通過(guò)uart回來(lái),然后通過(guò)Wi-Fi
    發(fā)表于 03-06 08:09

    單片機(jī)教程九:單片機(jī)數(shù)據(jù)傳遞類(lèi)指令

    單片機(jī)教程九:單片機(jī)數(shù)據(jù)傳遞類(lèi)指令 單片機(jī)數(shù)據(jù)傳遞類(lèi)指令 (3)以直接地址為目的操作數(shù)的指令 MOV direct,A 例: MOV 20H,A
    發(fā)表于 05-15 23:03 ?869次閱讀
    單片機(jī)教程九:單片機(jī)<b class='flag-5'>數(shù)據(jù)傳遞</b>類(lèi)指令

    鼠標(biāo)按鍵數(shù)

    鼠標(biāo)按鍵數(shù)              按鍵數(shù)是指鼠標(biāo)
    發(fā)表于 12-28 11:34 ?2698次閱讀

    51單片機(jī)匯編語(yǔ)言教程:?jiǎn)纹瑱C(jī)數(shù)據(jù)傳遞類(lèi)指令

    51單片機(jī)匯編語(yǔ)言教程:9課單片機(jī)數(shù)據(jù)傳遞類(lèi)指令
    發(fā)表于 01-19 15:25 ?0次下載

    C#教程之屏蔽鼠標(biāo)按鍵

    C#教程之屏蔽鼠標(biāo)按鍵,很好的C#資料,快來(lái)學(xué)習(xí)吧。
    發(fā)表于 04-20 14:46 ?6次下載

    CY68013A進(jìn)行數(shù)據(jù)傳遞FPGA進(jìn)行格式轉(zhuǎn)換的數(shù)據(jù)采集與仿真系統(tǒng)

    本文設(shè)計(jì)了一種專(zhuān)門(mén)用于底層協(xié)議棧開(kāi)發(fā)的數(shù)據(jù)采集與仿真系統(tǒng),利用USB高速傳輸特點(diǎn)以及物理連接的便利性,采用CY68013A進(jìn)行數(shù)據(jù)傳遞,充分利用其GPIF資源,使用FPGA進(jìn)行格式轉(zhuǎn)換。文中對(duì)仿真
    的頭像 發(fā)表于 08-30 10:44 ?7334次閱讀
    CY68013A進(jìn)行<b class='flag-5'>數(shù)據(jù)傳遞</b>FPGA進(jìn)行<b class='flag-5'>格式</b>轉(zhuǎn)換的<b class='flag-5'>數(shù)據(jù)</b>采集與仿真系統(tǒng)

    第9課:單片機(jī)數(shù)據(jù)傳遞類(lèi)指令 2020/11/17

    第9課:單片機(jī)數(shù)據(jù)傳遞類(lèi)指令 2020/11/17
    發(fā)表于 11-20 11:51 ?0次下載
    第9課:單片機(jī)<b class='flag-5'>數(shù)據(jù)傳遞</b>類(lèi)指令 2020/11/17

    鼠標(biāo)按鍵的“靈動(dòng)”用法

    鼠標(biāo),能使電腦操作方便快捷 但是,?鼠標(biāo)各鍵的用處?你知道多少呢? 01 按鍵一:滾輪 1、瀏覽器中滑動(dòng)網(wǎng)頁(yè)?當(dāng)我們?yōu)g覽網(wǎng)頁(yè)的時(shí)候,滑動(dòng)鼠標(biāo)中間的滾輪,就可以實(shí)現(xiàn)上下瀏覽啦~ 且在瀏覽
    發(fā)表于 10-18 16:43 ?3120次閱讀
    百家乐官网视频聊天软件| 新全讯网网址112| 赌场百家乐官网信誉| 威尼斯人娱乐城动态| 百家乐官网补第三张牌规则| 德州扑克 术语| 百家乐赌假的工具| 溧阳市| 网上的百家乐怎么才能赚钱| 百家乐官网明灯| 亲朋棋牌刷金币| 百家乐视频软件下载| 百家乐官网知敌便能制胜| 大发888娱乐场下载删除| 百家乐U盘下载| 百家乐官网网址哪里有| 大发888娱乐城 手机版| 百家乐技术秘籍| 百家乐官网下对子的概率| 博发百家乐的玩法技巧和规则| 盛大百家乐官网的玩法技巧和规则| 百家乐桌子定制| 属火的在属土的方向做生意好不好| 百家乐官网视频世界| 大发888娱乐厂场| 澳门百家乐公试打法| 百家乐官网微笑投注| 博狗娱乐场| 宝马会百家乐的玩法技巧和规则| 龙虎斗网站| 二八杠的玩法| 开心8百家乐娱乐城| 百家乐官网赌博技巧网| 拉斯维加斯娱乐城| 百家乐一起多少张牌| 百家乐官网平台注册| 新巴尔虎左旗| 德州扑克 术语| 百家乐红桌布| 澳门百家乐开户投注| 欢乐谷百家乐官网的玩法技巧和规则|