日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

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

瀏覽:230日期: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系統
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品极品| 日韩午夜黄色| 免费av一区| 国产 日韩 欧美 综合 一区| 久久夜色精品| 麻豆精品视频在线| 亚洲欧美视频| 亚洲不卡av不卡一区二区| 免费在线看一区| 99久久精品费精品国产| 精品美女久久| 国产一精品一av一免费爽爽| 欧美专区一区| 国产成年精品| 影音先锋国产精品| 在线国产精品一区| 欧美久久一区二区三区| 国产精品天堂蜜av在线播放| 国产精品一区二区精品视频观看| 久久的色偷偷| 婷婷激情一区| 99re国产精品| 国产欧美日韩影院| 麻豆精品视频在线观看免费| 精品亚洲美女网站| 中文在线日韩| 青青草国产精品亚洲专区无| 亚洲精品欧洲| av中文资源在线资源免费观看| 亚洲精品一二三区区别| 亚洲精品影视| 亚洲高清av| 91福利精品在线观看| 久久免费大视频| 国产精品99久久免费| 不卡一区2区| 麻豆精品av| 亚洲精品国产精品粉嫩| 国产精品白浆| 美女精品在线| 久久精品官网| 麻豆中文一区二区| 日韩欧美三区| 亚洲一卡久久| 免费视频国产一区| 国产高潮在线| 免费亚洲婷婷| 国产日韩1区| 婷婷五月色综合香五月| 激情综合自拍| 日韩免费福利视频| 精品福利久久久| 国产精品一区二区三区四区在线观看| 亚洲男女av一区二区| 开心激情综合| 日本不卡视频一二三区| 亚洲欧美日韩专区| 激情自拍一区| 精品久久免费| 青草久久视频| 日韩精品电影一区亚洲| 欧美精品一卡| 视频一区在线视频| 精品成人免费一区二区在线播放| 天堂va欧美ⅴa亚洲va一国产| 亚洲先锋成人| 国产精品99一区二区三| 麻豆久久久久久| 18国产精品| 欧美在线91| 97精品资源在线观看| 亚洲欧洲国产精品一区| 亚洲a成人v| 国产精品嫩模av在线| 国产精品视频一区视频二区| 日韩av网站在线免费观看| 日本免费一区二区视频| 国产精品天堂蜜av在线播放| 日韩和欧美一区二区| 麻豆精品av| 激情欧美亚洲| 日韩在线观看一区二区| 日本aⅴ精品一区二区三区| 日韩激情中文字幕| 国产欧美日韩在线一区二区| 国产66精品| 国产精品毛片| 国产精品久久久久77777丨| 久久久久久久欧美精品| 99久久精品国产亚洲精品| 日韩视频免费| 日本亚洲不卡| 欧美xxxx中国| 视频在线观看国产精品| 97精品视频在线看| 偷拍欧美精品| 欧美三级第一页| 久久蜜桃精品| 国产乱论精品| 日韩制服丝袜先锋影音| 免费精品一区| 亚洲综合中文| 欧洲av一区二区| 欧美日韩伊人| 狠狠干成人综合网| 国产一区二区三区四区二区 | 日韩精品水蜜桃| 91精品国产自产观看在线| 久久麻豆精品| 日本美女一区| 国产在视频一区二区三区吞精| 蜜桃一区二区三区在线观看| 久久九九精品| 精品国产黄a∨片高清在线| 首页亚洲欧美制服丝腿| 欧美国产偷国产精品三区| 国产精品sm| 国产区精品区| 91欧美日韩在线| 亚洲精品乱码久久久久久蜜桃麻豆| 成人午夜亚洲| 国产精品亚洲欧美一级在线| 亚洲一二av| 亚洲尤物av| 视频一区国产视频| 噜噜噜久久亚洲精品国产品小说| 国产99精品一区| 久久一区二区中文字幕| 日韩伦理一区| 美女网站视频一区| 激情综合自拍| 亚洲精品系列| 美女国产精品久久久| 国产欧美日韩精品一区二区三区| 中国女人久久久| 五月综合激情| 99在线|亚洲一区二区| 亚洲一区日本| 热久久久久久久| 中文字幕免费精品| 日韩精品久久理论片| 国产精品永久| 美女一区网站| 婷婷综合五月| 亚洲精品免费观看| 日韩av午夜在线观看| 久久xxx视频| 欧美亚洲国产激情| 视频在线在亚洲| 国产精品成人3p一区二区三区| 精品视频自拍| 国产欧洲在线| 首页亚洲欧美制服丝腿| 国产日韩欧美一区在线| 98精品视频| 亚洲区国产区| 激情黄产视频在线免费观看| 黄色成人在线网址| 久久国产婷婷国产香蕉| 亚洲伊人av| 婷婷视频一区二区三区| 成人精品动漫一区二区三区| 香蕉久久夜色精品国产| 久久久久伊人| 亚洲人成在线影院| 日韩av福利| 亚洲乱码视频| 欧美性感美女一区二区| 国产欧美日韩| 蜜桃一区二区三区在线观看| 日韩大片在线| 欧美国产中文高清| 日韩精品一二区| 国产欧美午夜| 成人国产精品一区二区免费麻豆| 免费观看不卡av| 久久亚洲黄色| 日韩精品导航| 中文不卡在线| 91精品啪在线观看国产18| 国产麻豆一区二区三区精品视频| 精品不卡一区| 国产精品白浆| 国产日韩在线观看视频| 综合激情婷婷| 合欧美一区二区三区| 日韩av有码| 久久精品一区二区国产| 国产精品欧美日韩一区| 日韩精品视频中文字幕| 久久福利精品| 热久久免费视频| 久久国产精品久久w女人spa| 亚洲国产不卡| 精品日韩毛片| 蜜芽一区二区三区| 蜜桃一区二区三区| 亚洲制服少妇| 亚洲精品影视| 欧美亚洲自偷自偷|