国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
用VB編寫鍵盤攔截程序 — 編程愛好者 programfan.com
我們知道,在一些程序中,有一些快捷方式(如:Shift鍵最小化、ESC鍵退出、Ctrl+S存盤、Alt+x退出等等)。以前有一些介紹使用Win32 API可以做到,但過于繁瑣,其實(shí)VB本身已經(jīng)給我們提供了這個功能。
  我們來新建一個窗體Form1,對于鍵盤操作可以看到有三個事件KeyPress(),KeyDown和KeyUp,下面我對它們分別介紹:
  KeyPress()事件是當(dāng)用戶按下和松開一個 ANSI 鍵時發(fā)生(ANSI是可見ASCII字符1-127)。
  語法
  Private Sub object_KeyPress([index As Integer,]keyascii As Integer)
  KeyPress 事件語法包含下列部分:
   部分 描述
  object 一個對象表達(dá)式,其值是“應(yīng)用于”列表中的一個對象。
  index 一個整數(shù),它用來唯一標(biāo)識一個在控件數(shù)組中的控件(僅有控件數(shù)組時才有)。
  keyascii 是返回一個標(biāo)準(zhǔn)數(shù)字 ANSI 鍵代碼的整數(shù)。Keyascii 通過引用傳遞,對它進(jìn)行改變可給對象
  發(fā)送一個不同的字符。將 keyascii 改變?yōu)?0 時可取消擊鍵,這樣一來對象便接收不到字符。
  說明
  具有焦點(diǎn)的對象接收該事件。一個窗體僅在KeyPreview 屬性被設(shè)置為 True 時才能接收該事件。一個 KeyPress 事件可以引用任何可打印的鍵盤字符,一個來自標(biāo)準(zhǔn)字母表的字符或少數(shù)幾個特殊字符之一的字符與 CTRL 鍵的組合,以及 ENTER 或BACKSPACE鍵。KeyPress()事件過程在截取 TextBox 或 ComboBox 控件所輸入的擊鍵時是非常有用的。它可立即測試擊鍵的有效性或在字符輸入時對其進(jìn)行格式處理。改變 keyascii 參數(shù)的值會改變所顯示的字符。
  可使用下列表達(dá)式將 keyascii 參數(shù)轉(zhuǎn)變?yōu)橐粋€字符:
  Chr(KeyAscii)
  然后執(zhí)行字符串操作,并將該字符反譯成一個控件可通過該表達(dá)式解釋的 ANSI 數(shù)字:
  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 一個對象表達(dá)式,其值是“應(yīng)用于”列表中的一個對象。
  index 是一個整數(shù),它用來唯一標(biāo)識一個在控件數(shù)組中的控件(僅有控件數(shù)組時才有)。
  keycode 是一個鍵代碼,諸如 vbKeyF1 ( F1 鍵)或 vbKeyHome ( HOME 鍵)。
  shift 是在該事件發(fā)生時響應(yīng) SHIFT ,CTRL 和 ALT 鍵的狀態(tài)的一個整數(shù)。shift、CTRL、ALT 鍵在這些位分別對應(yīng)于值 1、2 和 4。例如:如果 CTRL 和 ALT 這兩個鍵都被按下,則 shift 的值為 6。
  說明
  對于這兩個事件來說,帶焦點(diǎn)的對象都接收所有擊鍵。一個窗體只有在不具有可視的和有效的控件時才可以獲得焦點(diǎn)。雖然KeyDown()和KeyUp()事件可應(yīng)用于大多數(shù)鍵,它們最經(jīng)常地還是應(yīng)用于:擴(kuò)展的字符鍵如功能鍵、定位鍵、鍵盤修飾鍵和按鍵的組合、區(qū)別數(shù)字小鍵盤和常規(guī)數(shù)字鍵;在需要對按下和松開一個鍵都響應(yīng)時,可使用 KeyDown 和 KeyUp 事件過程。
  下列情況不能引用 KeyDown 和 KeyUp 事件:窗體有一個 CommandButton 控件,并且 Default 屬性設(shè)置為 True 時的 ENTER 鍵。窗體有一個 CommandButton 控件,并且 Cancel 屬性設(shè)置為 True 時的 ESC 鍵、TAB鍵,KeyDown 和 KeyUp 用兩種參數(shù)解釋每個字符的大寫形式和小寫形式:keycode —顯示物理的鍵(將 A 和 a 作為同一個鍵返回)和shift—顯示shift+key鍵的狀態(tài)而且返回A或a其中之一。
  如果需要測試 shift 參數(shù),可使用該參數(shù)中定義各位的 shift 常數(shù)。該常數(shù)有下列值:
  常數(shù) 值 描述
  vbShiftMask 1 HIFT 鍵的位
   屏蔽。
  VbCtrlMask 2 CTRL 鍵的
   位屏蔽。
  VbAltMask 4 ALT 鍵的位
   屏蔽。
  該常數(shù)用作位屏蔽,它可被用來測試任何鍵組合。
  注意:如果 KeyPreview 屬性被設(shè)置為 True,則一個窗體先于該窗體上的控件接收到此事件??捎?KeyPreview 屬性來創(chuàng)建全局鍵盤處理例程。
  了解了以上知識,我們可以制作出非常完美而且?guī)в锌旖萱I的程序,例如我們在一個程序中要用Ctrl+S存盤,Shift最小化,Alt+X和ESC退出:
  首先啟動vb選擇新建EXE文件,在Form1窗體上拉一個TextBox,并把Form1的KeyPreview屬性設(shè)為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
  運(yùn)行它就可以實(shí)現(xiàn)我們所要求的功能了
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VB編程中的鍵盤和鼠標(biāo)知識總結(jié)!
c# keydown keypress keyup
jquery 中的事件
C#控件中的KeyDown、KeyPress 與 KeyUp事件淺談
Command的常用事件
第五章 鍵盤與鼠標(biāo)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服