日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

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

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

一、USB鼠標簡介

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

二、Linux模擬USB鼠標的方法

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

1. 使用內核模塊uhid實現USB鼠標

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

具體來說,實現方法如下:

(1)安裝uhid模塊

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

sudo modprobe uhid

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

lod | grep uhid

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

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

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

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

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)使用虛擬設備模擬USB鼠標操作

使用虛擬設備模擬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)建的虛擬設備的設備節(jié)點名稱。

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

相關問題拓展閱讀:

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

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

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

需要多種框架相結合:字符設備驅動框架 + 鼠標驅動框架

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

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


網站標題:使用Linux模擬USB鼠標(linuxu鼠標模擬)
轉載來于:http://www.5511xx.com/article/cddeodj.html