成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

鼠標在UNIX系統中的應用程序中的使用

瀏覽:196日期:2024-07-02 14:03:24

在當前眾多的個人電腦中, Windows 操作系統鋪天蓋地,鼠標在其上有著廣泛的應用。同樣,Unix 系統的 X Window,離開了鼠標,操作上也是顯得不太靈活方便。本文并不對X Window 中所應用的鼠標的隊列方式給予介紹,只是簡單地介紹一下如何利用系統調用實現對鼠標的直接訪問。 在大多數個人電腦中,使用的是輔口鼠標,由于本人條件所限,也只能對輔口鼠標在Unix系統中的應用給予粗淺的介紹。 輔口鼠標在AT&T Unix系統中應設置為PS/2鼠標,對應的設備文件為/dev/mouse;而在 SCO Unix系統中應設置為 kbmouse(即鍵盤鼠標),對應的設備文件為/dev/mouse/kb0。如果在編程中使用鼠標,應遵循以下順序: 1、打開鼠標對應的設備文件。 2、利用系統調用將鼠標設置為不等待方式。 3、通過系統調用來循環讀取鼠標的按鍵狀態,根據按鍵狀態轉向執行不同的程序功能模塊。 在這里,我先對用到的與鼠標有關的兩個系統功能調用給予簡單介紹。鼠標系統調用的方式為: int ioctl(int fd, int request,…/*arg*/) 其中:fd 為鼠標設備文件描述符 request 為系統調用請求的功能號 …表示系統功能調用的參數 對請求的功能號宏定義為: #define MOUSEIOC ('M'<<8) #define MOUSEIOCREAD (MOUSEI OC/60) #define MOUSEIOCNDELAY (MOU SEIOC/81) 功能描述 : MOUSEIOCNDELAY 將鼠標設置為不等待方式,在系統調用中,不需要參數。可將ioctl的參數項設為01(長整數零)。 MOUSEIOCREAD 用于讀取鼠標的位置和狀態數據。在 ioctl 中的參數項為一結構指針。該結構定義如下: struct mouseinfo { unsigned char status; char xmotion; char ymotion; } 該結構的status字段包含鼠標按鍵狀態信息,具體格式為: 高位 7 6 5 4 3 2 1 0 低位   0 Mv Lc Mc Rc L M R Mv:如果鼠標自從上次執行MOUSEIOCREAD 系統調用后移動過,則該位為1。 Lc:如果鼠標自從上次執行MOUSEIOCREAD系統調用后左按鍵狀態已改變 ,則該位為1。 Mc:如果鼠標自從上次執行MOUSEIOCREAD系統調用后中按鍵狀態已改變,則該位為1。 Rc:如果鼠標自從上次執行MOUSEIOCREAD系統調用后右按鍵狀態已改變,則該位為1。 L:左按鍵當前狀態(按下為1,彈起為0)。 M:中按鍵當前狀態(按下為1,彈起為0,只用于三鍵鼠標)。 R:右按鍵當前狀態(按下為1,彈起為0)。 在使用時要注意: 1、如果自從上次調用MOUSEIOCREAD系統調用后,鼠標已被移動過,但x向(橫向)和y向(縱向)的位移量為0,要判斷鼠標是否被移動過,就需要查看Mv位。 2、如果鼠標自從上次調用MOUSEIOCREAD系統調用后,一個按鍵已被按下彈起過,該按鍵的當前狀態位將不會改變,但有時應用程序需要知道它改變過,這對要用到Lc,Mc和Rc位。 結構mouseinfo中的xmotion和ymotion字段用于標識鼠標相對于上次調用MOUSEIOCREAD時在x方向和y方向的位移量。位移量的范圍為-127到127,超過兩端的部分被截去。 介紹完鼠標的兩個重要的系統調用,就可在實際編程中使用它了。本人在Unix系統下基于此方式編寫過使用鼠標的幾個程序(圖形方式和文本方式下)。以下是本人編寫的簡單的鼠標測試程序(此程序在AT&T Unix SVR 4.2下調試通過),功能不完備,僅供參考。 源程序清單如下: #include ″sys/types.h″ #include ″errno.h″ #include ″stdio.h″ #include ″sys/fcntl.h″ #include ″sys/ioctl.h″ #include ″signal.h″ #define BUTCHNGMASK 0x38 #define MOVEMENT 0x40 #define BUTSTATMASK 7 #define BUT3STAT 1 #define BUT2STAT 2 #define BUT1STAT 4 #define BUT3CHNG 8 #define BUT2CHNG 0x10 #define BUT1CHNG 0x20

#define MSE_BUTTON 0 #defing MSE_MOTION 1

struct mouseinfo   unsigned char status;   charxmotion, ymotion; }; /* Ioctl Command definitions */ #define MOUSEIOC ('M'<<8) #define MOUSEIOCREAD (MOUSEI OC| 60) #define MOUSEIOCNDELAY (MOU SEIOC| 81)

void (* s_quit)(); void (* s_intr)(); int fd; void EXIT(); void main() {   unsigned long a,b;   int i,j,status;   char buf[80];   struct mouseinfo mseinfo;   int xpos=1,ypos=1;   s_quit=signal(SIGQUIT,EXIT);   s_intr=signal(SIGINT,EXIT);   if((fd=open(″dev/mouse″,0_RD WR))==-1){   perror(″不能打開鼠標設備文件!!!″);   exit(1); } printf(″33[1c″);/*設置光標為塊方式/* ioctl(fd,MOUSEIOCNDELAY,OL); /*設置鼠標為非延遲等待方式*/ while(1){   ioctl(fd,MOUSEIOCREAD,&ms einfo); /*讀取鼠標狀態信息*/ if(mseinfo.status&MOVEMENT){ xpos=xpos+mseinfo.xmotion; if(xpos <=0) xpos=1; else if(xpos >80) xpos=80; ypos=ypos+mseinfo.ymotion; if(ypos <=0) ypos=1; else if(ypos > 25) ypos=25; printf(″033[%d;%dH″,ypos,xpos);/*調整光標位置*/ fflush(stdout); /*刷新輸出*/ } if(mseinfo.status&BUTCHNGMASK){ if(mseinfo.status&BUT1CHNG){ if(mseinfo.status&BUT1STAT){ printf(″Left Depressed″);/*左鍵被按下*/ fflush(stdout); } else { printf(″Left Relessed″);/*左鍵被釋放*/ fflush(stdout); } } if(mseinfo.status&BUT3CHNG){ if(mseinfo.status&BUT3STAT){ printf(″Right Depressed″); /*右鍵被按下*/ fflush(stdout); } else { printf(″Right Relessed″);/*右鍵被釋放*/ fflush(stdout); } } } } } void EXIT() /*本函數用于信號處理,實現整個程序的退出*/ { close(fd); printf(″33[0c″); signal(SIGQUIT,s_quit); signal(SIGINT,s_intr); exit(0); } /*———程序結束————*/

標簽: Unix系統
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
久久激情五月激情| 国产精品久久三| 欧美成人福利视频| 免费观看成人鲁鲁鲁鲁鲁视频| 中国成人亚色综合网站| 国产精品毛片高清在线完整版 | 成人小视频免费观看| 欧美少妇一区二区| 亚洲图片欧美一区| 一区二区91| 一区二区三区欧美在线观看| 亚洲图片在线观看| 国产精品久久午夜夜伦鲁鲁| 欧美不卡福利| 久久精品一区二区| 不卡一区中文字幕| 欧美一区二区大片| 国产一区二三区| 6080午夜不卡| 久久99精品久久久久久动态图 | 2021中文字幕一区亚洲| 成人黄色免费短视频| 日韩视频免费观看高清在线视频| 国产剧情一区二区三区| 欧美一区永久视频免费观看| 国产成人精品午夜视频免费| 日韩欧美一区在线观看| 成人高清视频在线观看| 久久在线免费观看| 欧美黄色一区| 国产精品成人免费精品自在线观看| 国产精品国产三级国产专区53| 亚洲欧洲三级电影| 国产精品日韩久久久| 亚洲一级不卡视频| 久久久蜜桃一区二区人| 麻豆极品一区二区三区| 欧美日韩国产一区二区三区地区| 国产一区二区福利| 日韩精品一区二区三区老鸭窝| 成人av电影在线观看| 久久精品一区二区三区四区| 好吊视频一区二区三区四区| 亚洲免费在线观看视频| 99精品国产高清一区二区| 亚洲一区二区在线视频| 久久婷婷国产综合尤物精品| 久久超碰97中文字幕| 欧美一级黄色录像| 91免费版在线看| 亚洲欧美日韩在线| 久久xxxx精品视频| 奇米色777欧美一区二区| 欧美午夜精品一区二区三区| 国产不卡在线播放| 欧美激情一区二区三区四区| 国内激情久久| 亚洲综合视频网| 日本道在线观看一区二区| 激情六月婷婷久久| 久久久欧美精品sm网站| 在线播放日韩| 全国精品久久少妇| 精品久久久三级丝袜| 欧美日韩亚洲一区三区| 夜夜夜精品看看| 欧美日韩午夜精品| 欧美91大片| 一区二区三区精品在线| 91国偷自产一区二区开放时间| 国产乱淫av一区二区三区| 久久精品视频网| 国产伦精品一区二区三区四区免费 | 一区二区三区加勒比av| 欧美优质美女网站| 不卡av电影在线播放| 亚洲蜜臀av乱码久久精品| 欧美日韩中字一区| 91免费在线播放| 亚洲一区二区三区视频在线| 欧美一区二区黄| 在线日韩欧美| 九九在线精品视频| 国产日韩欧美电影| 蜜桃久久av| 粉嫩绯色av一区二区在线观看 | 一区二区在线视频观看| 麻豆精品一区二区av白丝在线| 久久青草欧美一区二区三区| 免费亚洲一区二区| 99久久国产综合精品色伊| 视频一区欧美日韩| 国产日韩欧美高清| 欧美性感一区二区三区| 国产精品xxx在线观看www| 男女激情视频一区| 国产精品素人一区二区| 欧美在线视频不卡| 激情一区二区| 国产一区二区在线观看视频| 亚洲欧美一区二区久久 | 一区二区亚洲| 国产乱子伦视频一区二区三区| 亚洲美女一区二区三区| 日韩三级免费观看| 久久久www| 国产精品观看| 国产成人自拍网| 亚洲r级在线视频| 久久久久久亚洲综合| 久久久久久九九九九| 欧美高清不卡| 国产永久精品大片wwwapp | 亚洲一区二区三区中文字幕在线| 日韩欧美色综合网站| 麻豆久久精品| 欧美精品一区二区视频 | 日韩一区二区三区观看| 国产精品美女久久久浪潮软件| 成人福利在线看| 日韩1区2区日韩1区2区| 国产精品嫩草久久久久| 91精品国产一区二区三区| 亚洲欧美日韩另类精品一区二区三区 | 91传媒视频在线播放| 激情久久一区| 高清成人在线观看| 免费观看一级欧美片| 亚洲日本va午夜在线影院| 精品日本一线二线三线不卡| 欧美调教femdomvk| 99精品免费网| 欧美高清视频一区| 成人性生交大片免费看在线播放| 免费人成精品欧美精品| 亚洲乱码中文字幕| 欧美国产欧美综合| 日韩女优制服丝袜电影| 欧美性受xxxx| 亚洲免费影视| 亚洲高清123| 午夜久久久久| 波多野结衣在线aⅴ中文字幕不卡| 狠狠色伊人亚洲综合成人| 同产精品九九九| 亚洲综合视频在线| 国产精品久99| 国产视频一区二区在线观看| 日韩精品一区二区三区老鸭窝 | 波多野结衣中文一区| 国产综合久久久久影院| 五月天激情小说综合| 亚洲激情五月婷婷| 国产精品人成在线观看免费| 久久亚洲精精品中文字幕早川悠里| 91精品国产综合久久久久久久 | 成人高清在线视频| 国产一区二区免费看| 久久er精品视频| 日本vs亚洲vs韩国一区三区二区| 亚洲午夜久久久久久久久久久| 综合欧美亚洲日本| 2欧美一区二区三区在线观看视频| 91精品啪在线观看国产60岁| 欧美日韩精品一区二区| 色婷婷综合久久久中文字幕| 久久国产主播| 久久国产福利| 免费日韩av| 免费日韩一区二区| 久久99伊人| 色偷偷一区二区三区| 在线看日韩精品电影| 欧美综合天天夜夜久久| 91成人国产精品| 在线精品亚洲一区二区不卡| 色先锋资源久久综合| 欧美亚洲图片小说| 欧美日韩一区二区三区四区| 欧美日韩国产区一| 欧美精品1区2区3区| 欧美一个色资源| 精品国精品国产| 久久精品日产第一区二区三区高清版| 精品女同一区二区| xf在线a精品一区二区视频网站| 精品成人一区二区| 国产亚洲综合色| 中文字幕av一区二区三区高| 日本一区二区成人| 亚洲欧洲成人精品av97| 亚洲欧美另类图片小说| 亚洲最大的成人av| 丝袜a∨在线一区二区三区不卡| 日韩av一级片| 极品美女销魂一区二区三区 | 亚洲激情网站免费观看| 亚洲国产精品自拍| 青娱乐精品在线视频| 国产精品白丝jk黑袜喷水|