亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Visual Basic > 正文

用VB編寫鍵盤攔截程序

2024-09-07 17:32:50
字體:
來源:轉載
供稿:網友
我們知道,在一些程序中,有一些快捷方式(如:Shift鍵最小化、ESC鍵退出、Ctrl+S存盤、Alt+x退出等等)。以前有一些介紹使用Win32 API可以做到,但過于繁瑣,其實VB本身已經給我們提供了這個功能。

  我們來新建一個窗體Form1,對于鍵盤操作可以看到有三個事件KeyPress(),KeyDown和KeyUp,下面我對它們分別介紹:

  KeyPress()事件是當用戶按下和松開一個ANSI鍵時發生(ANSI是可見ASCII字符1-127)。

  語法   Private Sub object_KeyPress([index As Integer,]keyascii As Integer)   KeyPress事件語法包含下列部分:

  部分描述

  object一個對象表達式,其值是"應用于"列表中的一個對象。

  index一個整數,它用來唯一標識一個在控件數組中的控件(僅有控件數組時才有)。

  keyascii是返回一個標準數字ANSI鍵代碼的整數。Keyascii通過引用傳遞,對它進行改變可給對象。

  發送一個不同的字符。將keyascii改變為0時可取消擊鍵,這樣一來對象便接收不到字符。

  說明

  具有焦點的對象接收該事件。一個窗體僅在KeyPreview屬性被設置為True時才能接收該事件。一個KeyPress事件可以引用任何可打印的鍵盤字符,一個來自標準字母表的字符或少數幾個特殊字符之一的字符與CTRL鍵的組合,以及ENTER或BACKSPACE鍵。KeyPress()事件過程在截取TextBox或ComboBox控件所輸入的擊鍵時是非常有用的。它可立即測試擊鍵的有效性或在字符輸入時對其進行格式處理。改變keyascii參數的值會改變所顯示的字符。

  可使用下列表達式將keyascii參數轉變為一個字符:   Chr(KeyAscii)   然后執行字符串操作,并將該字符反譯成一個控件可通過該表達式解釋的ANSI數字:   KeyAscii = Asc(char)   在KeyPress()處理不了的功能可以由KeyDown()和KeyUp()事件來處理:   語法   Private Sub object_KeyDown([index As Integer,]keycode As Integer, shift As Integer)   Private Sub object_KeyUp([index As Integer,]keycode As Integer, shift As Integer)   KeyDown和KeyUp事件包括下列部分:   部分描述   object一個對象表達式,其值是"應用于"列表中的一個對象。   index是一個整數,它用來唯一標識一個在控件數組中的控件(僅有控件數組時才有)。   keycode是一個鍵代碼,諸如vbKeyF1(F1鍵)或vbKeyHome(HOME鍵)。   shift是在該事件發生時響應SHIFT ,CTRL和ALT鍵的狀態的一個整數。shift、CTRL、ALT鍵在這些位分別對應于值1、2和4。例如:如果CTRL和ALT這兩個鍵都被按下,則shift的值為6。

  說明

  對于這兩個事件來說,帶焦點的對象都接收所有擊鍵。一個窗體只有在不具有可視的和有效的控件時才可以獲得焦點。雖然KeyDown()和KeyUp()事件可應用于大多數鍵,它們最經常地還是應用于:擴展的字符鍵如功能鍵、定位鍵、鍵盤修飾鍵和按鍵的組合、區別數字小鍵盤和常規數字鍵;在需要對按下和松開一個鍵都響應時,可使用KeyDown和KeyUp事件過程。

  下列情況不能引用KeyDown和KeyUp事件:窗體有一個CommandButton控件,并且Default屬性設置為True時的ENTER鍵。窗體有一個CommandButton控件,并且Cancel屬性設置為True時的ESC鍵、TAB鍵,KeyDown和KeyUp用兩種參數解釋每個字符的大寫形式和小寫形式:keycode-顯示物理的鍵(將A和a作為同一個鍵返回)和shift-顯示shift+key鍵的狀態而且返回A或a其中之一。

  如果需要測試shift參數,可使用該參數中定義各位的shift常數。該常數有下列值:

  常數值描述

  vbShiftMask 1 HIFT鍵的位

  屏蔽。

  VbCtrlMask 2 CTRL鍵的

  位屏蔽。

  VbAltMask 4 ALT鍵的位

  屏蔽。

  該常數用作位屏蔽,它可被用來測試任何鍵組合。

  注意:如果KeyPreview屬性被設置為True,則一個窗體先于該窗體上的控件接收到此事件??捎肒eyPreview屬性來創建全局鍵盤處理例程。

  了解了以上知識,我們可以制作出非常完美而且帶有快捷鍵的程序,例如我們在一個程序中要用Ctrl+S存盤,Shift最小化,Alt+X和ESC退出:

  首先啟動vb選擇新建EXE文件,在Form1窗體上拉一個TextBox,并把Form1的KeyPreview屬性設為True,雙擊Form1,選擇Form的KeyPress事件,輸入如下代碼:   Private Sub Form_KeyPress(KeyAscii as Integer) 'Esc鍵退出,VbEscape可以用27代替   If KeyAscii=VbEscape then End   End Sub   在Form的KeyDown事件中輸入如下代碼:   Private Sub Form_KeyDown(KeyCode as Integer,Shift as Integer) '處理Ctrl+X,Shift,Alt+X   If Shift=2 And KeyCode=VbKeyS Then Print#FileNum,Form1.Text1.Text 'Ctrl+S存盤,VbKeyS=83   If shift=2 then Form1.WindowState=1 'Shift最小化   If Shift=4 And KeyCode=VbKeyX Then End 'Alt+X退出,VbkeyX=88   End Sub   在Form的Load事件中輸入如下代碼:   Private Sub Form_load()   Dim FileNum as integer   FileNum=FreeFile   Open App.Path+"Sample.txt" For Append As#FileNum   End Sub
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕在线看视频国产欧美| 91久久国产综合久久91精品网站| 超碰97人人做人人爱少妇| 国产91色在线播放| 国产日韩精品在线| 中文字幕精品国产| 欧美日韩综合视频网址| 日韩欧美在线视频观看| 欧美性理论片在线观看片免费| 国产一区二区日韩精品欧美精品| 久久精品亚洲94久久精品| 欧美午夜www高清视频| 日韩黄色高清视频| 中文字幕久热精品在线视频| 孩xxxx性bbbb欧美| 欧美国产日韩中文字幕在线| 精品电影在线观看| 亚洲精品国产精品国自产在线| 亚洲欧美日韩久久久久久| 亚洲成人免费在线视频| 日韩精品高清在线观看| 精品美女永久免费视频| 亚洲xxxx妇黄裸体| 亚洲电影中文字幕| 欧美日韩第一视频| 精品国产一区二区三区在线观看| 精品国产老师黑色丝袜高跟鞋| 欧美激情日韩图片| 日韩成人激情影院| 精品视频久久久久久| 欧美日韩高清区| 久热在线中文字幕色999舞| 日韩av大片在线| 亚洲日韩中文字幕| 成人在线精品视频| 亚洲韩国欧洲国产日产av| 一二美女精品欧洲| 美女999久久久精品视频| 久久精品国产久精国产一老狼| 亚洲精品白浆高清久久久久久| 精品久久久视频| 在线国产精品播放| 一区国产精品视频| 日韩美女写真福利在线观看| 欧美性猛交xxxxx水多| 欧美日韩国产在线| 欧美日韩中文字幕在线| 97久久久免费福利网址| 中文字幕亚洲一区二区三区五十路| 国产精品福利网站| 亚洲免费中文字幕| 亚洲日本中文字幕| 久久综合五月天| 欧美国产极速在线| 日韩在线观看免费av| 九九热视频这里只有精品| 91日韩在线视频| 97成人在线视频| 欧美在线观看日本一区| 亚洲第一色中文字幕| 久久精品久久久久久国产 免费| 国语自产精品视频在免费| 亚洲另类欧美自拍| 国外成人在线播放| 成人性教育视频在线观看| 九九精品在线观看| 久久久中精品2020中文| 亚洲精品资源在线| 欧美高清自拍一区| 亚洲色图18p| 欧美综合在线观看| 亚洲综合在线播放| 中文字幕亚洲无线码a| 国产成人精品视频在线观看| 中文字幕日韩av综合精品| 91精品美女在线| 欧美—级a级欧美特级ar全黄| 国产99视频在线观看| 日韩人在线观看| 久久人人爽亚洲精品天堂| 亚洲精品国产电影| 日韩av在线播放资源| 91免费版网站入口| 久久国产精品久久久久久| 欧美又大粗又爽又黄大片视频| 97在线视频精品| 欧美国产日韩免费| 日本久久91av| 欧美福利在线观看| 欧美一区二粉嫩精品国产一线天| 国产成人精品优优av| 日韩高清欧美高清| 欧美色视频日本高清在线观看| 亚洲电影免费观看| 久久久噜噜噜久久中文字免| 精品亚洲一区二区三区| 日本久久91av| 欧美日韩aaaa| 欧美最猛黑人xxxx黑人猛叫黄| 精品国产一区二区三区四区在线观看| 日韩精品在线免费| 亚洲欧美国产精品专区久久| 亚洲mm色国产网站| 久久精品国产亚洲7777| 亚洲一区美女视频在线观看免费| 欧美电影免费观看| 亚洲天堂视频在线观看| 亚洲japanese制服美女| 国产一区二区三区视频| 精品中文字幕久久久久久| 久久视频免费观看| 国产国产精品人在线视| 日韩www在线| 国产精品久久久久久久9999| 奇门遁甲1982国语版免费观看高清| 亚洲天堂免费在线| 欧美影院久久久| 亚洲欧美精品在线| 国产一区二区日韩精品欧美精品| 久久久之久亚州精品露出| 国产成人精品久久亚洲高清不卡| 亚洲欧洲激情在线| 中文欧美在线视频| 国产精品18久久久久久首页狼| 亚洲一区二区三区四区在线播放| 爽爽爽爽爽爽爽成人免费观看| 国产精品亚洲视频在线观看| 午夜免费在线观看精品视频| 成人综合国产精品| 成人网页在线免费观看| 91在线免费观看网站| 久久久久久91| 欧美丰满少妇xxxxx做受| 国产精品欧美激情在线播放| 日韩在线观看免费网站| 亚洲精品中文字| 97在线观看视频国产| 日韩久久精品电影| 色阁综合伊人av| 国产成人精品久久二区二区91| 亚洲va欧美va在线观看| 国产精品aaa| 中文字幕免费精品一区| 国产精品久久久久久亚洲调教| 91日韩在线视频| 日韩少妇与小伙激情| 九九热最新视频//这里只有精品| 成人av资源在线播放| 亚洲成人激情图| 国产欧美在线看| 欧美一二三视频| 亚洲国产美女精品久久久久∴| 青青草99啪国产免费| 成人妇女淫片aaaa视频| 久久久国产精品免费| 日韩视频免费中文字幕| 久久国内精品一国内精品| 久久成人精品视频| 久久久久久高潮国产精品视| 成人福利视频在线观看| 国产精品久久久久久久久久久久| 久久影视电视剧凤归四时歌| 91精品国产成人www| 中文字幕久精品免费视频|