窗體內(nèi)檢測按鍵
成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站設計、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的魯山網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.KeyPreview = True '注冊窗體的鍵盤事件
End Sub
在TextBox1中顯示按鍵代碼
Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
TextBox1.Text = Str(e.KeyCode) + vbCrLf
End Sub
窗體沒有焦點,用窗體監(jiān)測鍵盤輸入緩沖區(qū)可以解決,但這似乎可以用于監(jiān)測用戶輸入內(nèi)容,不要用于非法目的呀!所以就是知道也不會告訴你的。
執(zhí)行鍵盤事件方法如下:
第一步,點擊VS工具。
第二步,打開后,新建一個Windows窗體應用程序。
第三步,請看右下方Form的屬性欄。
第四步,雙擊KeyDown。
第五步,輸入提示按鍵代碼,如圖所示。
第六步,再次輸入代碼,設置屬性KeyPreview為true。
第七步,運行程序,按下舉例F5,則會彈出提示,表明已經(jīng)成功獲。
用API?GetCursorPos ?
用Timer隔一段時間獲取一次鼠標位置。
鍵盤輸入,用?GetKeyboardState
加點分的話就給你完整的代碼
Public?Class?NativeMethods
'獲取鼠標位置
Declare?Function?GetCursorPos?Lib?"user32.dll"?_
(ByRef?lpPoint?As?System.Drawing.Point)?as?boolean
Private?Shared?keyState()?As?Byte
DllImport("user32.dll")?_
Private?Shared?Function?GetKeyboardState(ByVal?keyState()?As?Byte)?As?Boolean
End?Function
Private?Shared?Sub?Update()
keyState?=?New?Byte(256)?{}
Dim?result?As?Boolean?=?GetKeyboardState(keyState)
'?Check?for?error:
If?result?=?False?Then
Debug.WriteLine("GetKeyBoardState?error:?"??Marshal.GetLastWin32Error)
Throw?New?Exception("GetKeyBoardState?error:?"??Marshal.GetLastWin32Error)
End?If
End?Sub
Public?Enum?LightState
Off
[On]
End?Enum
'?Example?-?the?keyboard?lights...
Public?Shared?ReadOnly?Property?CapsLockState()?As?LightState
Get
Update()
Dim?isOn?As?Boolean?=?(keyState(Keys.CapsLock)?=?1)
Return?IIf(isOn,?LightState.On,?LightState.Off)
End?Get
End?Property
Public?Shared?ReadOnly?Property?NumLockState()?As?LightState
Get
Update()
Dim?isOn?As?Boolean?=?(keyState(Keys.NumLock)?=?1)
Return?IIf(isOn,?LightState.On,?LightState.Off)
End?Get
End?Property
Public?Shared?ReadOnly?Property?ScrollLockState()?As?LightState
Get
Update()
Dim?isOn?As?Boolean?=?(keyState(Keys.Scroll)?=?1)
Return?IIf(isOn,?LightState.On,?LightState.Off)
End?Get
End?Property
End?Class
pinvoke點虐 : GetCursorPos (user32)
pinvoke點虐 : GetKeyboardState (user32)
1.
窗體有一個屬性
pressview(在
雜項
的倒數(shù)第二個)
;
2.
這個屬性可以指示:是否從窗體接收鍵盤的輸入
3.
將其設置為
true
,窗體就可以接受鍵盤事件了
4.
然后通過委托
或者
調(diào)用子控件里面的函數(shù)過程
就可以實現(xiàn)鍵盤事件參數(shù)的傳遞,完成你所需要的功能了!
5.
望采納~
當前文章:vb點虐
窗體鍵盤 vb窗體位置的代碼
轉(zhuǎn)載來源:http://vcdvsql.cn/article16/ddsihdg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、網(wǎng)站營銷、響應式網(wǎng)站、網(wǎng)站設計公司、建站公司、營銷型網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)