日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
使用Linux模擬USB鼠標(linuxu鼠標模擬)

隨著計算機技術(shù)和網(wǎng)絡(luò)科技的不斷發(fā)展,Linux作為一種類Unix操作系統(tǒng),在服務(wù)器方面、嵌入式設(shè)備方面和桌面環(huán)境方面都有著廣泛的應(yīng)用。在使用Linux操作系統(tǒng)時,我們往往需要操作鼠標,但是有時候我們可能需要模擬鼠標操作,這時候我們可以。

一、USB鼠標簡介

先來介紹一下USB鼠標。USB鼠標是目前常用的一種外接鼠標,使用USB接口連接電腦,相較于傳統(tǒng)的串口鼠標和PS/2接口的鼠標,其特點是數(shù)據(jù)傳輸快,傳輸?shù)臄?shù)據(jù)實時性好,操作速度快,目前主流的操作系統(tǒng)都能支持USB鼠標。

二、Linux模擬USB鼠標的方法

在Linux環(huán)境中,我們可以通過模擬USB鼠標的方法來實現(xiàn)類似于鼠標的操作。其中,主要有兩種實現(xiàn)方式:一種是使用內(nèi)核模塊uhid(User-space Human Interface Device),另外一種是使用X11協(xié)議擴展XTEST。

1. 使用內(nèi)核模塊uhid實現(xiàn)USB鼠標

uhid是一個Linux內(nèi)核提供的一種驅(qū)動機制,通過它我們可以在用戶空間中創(chuàng)建一個虛擬的輸入設(shè)備,而這個虛擬的輸入設(shè)備可以在程序中控制的方式下,模擬USB鼠標的操作。

具體來說,實現(xiàn)方法如下:

(1)安裝uhid模塊

在Linux環(huán)境中,uhid模塊默認是不加載,因此我們需要手動安裝它。安裝方法如下:

sudo modprobe uhid

如果uhid模塊安裝成功,那么我們可以使用以下命令查看是否安裝成功:

lod | grep uhid

(2)創(chuàng)建一個虛擬設(shè)備

在Linux下,我們可以使用/dev/input/eventX文件來表示輸入設(shè)備。在這個文件上進行讀寫操作,就可以模擬鼠標、鍵盤等操作。我們可以使用以下命令來創(chuàng)建一個虛擬設(shè)備:

sudo su

echo 1 > /sys/module/uhid/parameters/uhid_max_hidraw

mknod /dev/uhid c 10 $(grep uhid /proc/devices | awk ‘{print $1}’)

chmod 666 /dev/uhid

如果您想要修改設(shè)備的屬性,可以使用以下命令:

echo “NAME =\”test\”” > /etc/udev/rules.d/90-test.rules

echo “MODE =\”0666\”” >> /etc/udev/rules.d/90-test.rules

echo “ACTION =\”add\”” >> /etc/udev/rules.d/90-test.rules

echo “SYMLINK =\”uhiddev\”” >> /etc/udev/rules.d/90-test.rules

(3)使用虛擬設(shè)備模擬USB鼠標操作

使用虛擬設(shè)備模擬USB鼠標操作的程序可以使用C語言編寫,其核心代碼如下:

int fd = open(DEV_NAME, O_RDWR);

if(fd

perror(“Unable to open device”);

return 1;

}

struct uhid_event ev;

memset(&ev, 0, sizeof(struct uhid_event));

ev.type = UHID_INPUT_REPORT;

ev.size = 3;

ev.u.input.usage_page = 0x01;

ev.u.input.usage = 0x02;

ev.u.input.raw[0] = 0x01; // buttons: left

ev.u.input.raw[1] = dx; // dx

ev.u.input.raw[2] = dy; // dy

write(fd, &ev, sizeof(struct uhid_event));

close(fd);

注意,這里的DEV_NAME為您創(chuàng)建的虛擬設(shè)備的設(shè)備節(jié)點名稱。

2. 使用X11協(xié)議擴展XTEST實現(xiàn)USB鼠標

XTEST是X11協(xié)議提供的一種擴展,可以在Linux系統(tǒng)下模擬鍵盤和鼠標等多種操作。其中,XTEST的核心代碼如下:

Display *display = XOpenDisplay(NULL);

XTestFakeMotionEvent(display, -1, x, y, 0);

XTestFakeButtonEvent(display, Button1, True, 0);

XTestFakeButtonEvent(display, Button1, False, 0);

XFlush(display);

XCloseDisplay(display);

注意,其中的x和y表示鼠標坐標。

三、

通過上述介紹,我們可以發(fā)現(xiàn),操作并不是一件很難的事情。我們可以通過使用內(nèi)核模塊uhid或者X11協(xié)議擴展XTEST來實現(xiàn)。盡管這些方案在使用上可能略有不同,但其核心思路都是類似的,即在用戶空間中模擬USB鼠標的操作。當我們需要實現(xiàn)類似于鼠標的功能時,可以根據(jù)實際需要,找到一種適合自己的方式來實現(xiàn)。

相關(guān)問題拓展閱讀:

  • 寫個u鼠標或鍵盤驅(qū)動需要哪些知識,linux為平臺

寫個u鼠標或鍵盤驅(qū)動需要哪些知識,linux為平臺

首先需要了解Linux輸入子系統(tǒng),因為鼠標是輸入設(shè)備,一種input_device。然后需伏高要了解USB設(shè)備驅(qū)動。使用了USB接橡段口,urb來獲得鼠標的數(shù)據(jù),然后把數(shù)據(jù)往上層應(yīng)用提交??梢詤⒖磧?nèi)核已經(jīng)有的USB鼠標驅(qū)動,位置是\linux-3.0.86\drivers\hid\uhid\umouse.c。linux-3.0.86是Linux內(nèi)核的根目錄。并不難。至于哪些書,可以看‘Linux設(shè)備驅(qū)動程序’這缺如尺本書,里頭主要知識都有講到。

需要多種框架相結(jié)合:字符設(shè)備驅(qū)動框架 + 鼠標驅(qū)動框架

關(guān)于linux u 鼠標 模擬的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。


文章標題:使用Linux模擬USB鼠標(linuxu鼠標模擬)
鏈接URL:http://www.dlmjj.cn/article/cddeodj.html