vb.net判斷鍵盤(pán) vb判斷是否按下鍵盤(pán)的鍵

VB鍵盤(pán)判斷按鍵

如果是在自己的程序中,可以利用自身的按鍵事件,如果是全局鍵盤(pán),那就要用到鍵盤(pán)hook技術(shù)了,比較復(fù)雜。

成都創(chuàng)新互聯(lián)公司專業(yè)提供四川電信機(jī)房托管服務(wù),為用戶提供五星數(shù)據(jù)中心、電信、雙線接入解決方案,用戶可自行在線購(gòu)買四川電信機(jī)房托管服務(wù),并享受7*24小時(shí)金牌售后服務(wù)。

Private Sub Form_Load()

Label1.Caption = ""

Text1 = ""

End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then '回車鍵

Label1.Caption = 1

ElseIf KeyAscii = 8 Then '退格鍵

Label1.Caption = 2

Else '其他按鍵

Label1.Caption = 3

End If

Me.Cls

Print KeyAscii

End Sub

vb.net 怎么知道按下了多個(gè)按鍵

用API ?GetKeyboardState?,判斷所有的鍵里哪些被按下了。

下面的是判斷鍵盤(pán)燈的狀態(tài)

Public?Class?NativeMethods

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

利用VB.NET怎樣使窗體在沒(méi)有焦點(diǎn)時(shí)也能檢測(cè)鍵盤(pán)事件?

窗體內(nèi)檢測(cè)按鍵

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

Me.KeyPreview = True '注冊(cè)窗體的鍵盤(pán)事件

End Sub

在TextBox1中顯示按鍵代碼

Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown

TextBox1.Text = Str(e.KeyCode) + vbCrLf

End Sub

窗體沒(méi)有焦點(diǎn),用窗體監(jiān)測(cè)鍵盤(pán)輸入緩沖區(qū)可以解決,但這似乎可以用于監(jiān)測(cè)用戶輸入內(nèi)容,不要用于非法目的呀!所以就是知道也不會(huì)告訴你的。

VB.net怎么過(guò)濾鍵盤(pán)輸入,如下圖程序,請(qǐng)教該怎么寫(xiě)

Public?Class?Form1

Private?Sub?TextBox1_KeyPress(sender?As?Object,?e?As?KeyPressEventArgs)?Handles?TextBox1.KeyPress

If?Not?IsNumeric(e.KeyChar)?Then????'判斷是否為數(shù)字

e.Handled?=?True????‘如果不是數(shù)字,取消操作,不顯示字符

End?If

End?Sub

End?Class

這樣就好啦

VB.net中鍵盤(pán)按鍵事件的代碼是什么如何判斷焦點(diǎn)的位置 也就是編寫(xiě)這樣一個(gè)程序 擊鍵時(shí),如果焦點(diǎn)

選到TextBox1的keydown方法,然后val=keycode不行么?

焦點(diǎn)在哪個(gè)控件,哪個(gè)控件就會(huì)有keydown,沒(méi)有焦點(diǎn)也就不會(huì)有。

新聞標(biāo)題:vb.net判斷鍵盤(pán) vb判斷是否按下鍵盤(pán)的鍵
網(wǎng)頁(yè)地址:http://muchs.cn/article4/doccpoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)站營(yíng)銷定制開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)