vb.net全局键盘 vb键盘控制

vb.net,怎么做全局快捷键??

'vb全局快捷键是个大大滴难题,不好整。以下是个演示,办法比较笨,本人自用的,你试试。

丰顺网站建设公司创新互联建站,丰顺网站设计制作,有大型网站制作公司丰富经验。已为丰顺成百上千提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的丰顺做网站的公司定做!

'窗体放上控件:Command1、Label1、Check1、Check2、Text1、Text2、Timer1

'加入以下代码,运行,设置"确定"键的快捷键

'可选"CTRL+某键"或者"SHIFT+某键"

'"某键"自己设置,只能设置为字母或数字

Private Declare Function GetAsyncKeyState Lib "user32" _

(ByVal vKey As Long) As Integer 'API声明

Dim i

'================================================================

'这部分是设置各控件的大小、位置和初始属性,为了便于演示才加的,

'你可以自行设计好各控件的大小、位置和初始属性,无需这些代码。

Private Sub Form_Load()

Form1.Width = 2690: Form1.Height = 2100

Command1.Width = 1215: Command1.Height = 495

Command1.Top = 120: Command1.Left = 120

Command1.Caption = "确定"

Label1.Width = 2175: Label1.Height = 255

Label1.Top = 720: Label1.Left = 120

Label1.Caption = "设置 确定 键的快捷键:"

Check1.Width = 975: Check1.Height = 255

Check1.Top = 960: Check1.Left = 120

Check1.Caption = "CTRL +"

Check2.Width = 975: Check2.Height = 255

Check2.Top = 1320: Check2.Left = 120

Check2.Caption = "SHIFT +"

Text1.Width = 255: Text1.Height = 270

Text1.Top = 960: Text1.Left = 1080

Text1.Text = ""

Text2.Width = 255: Text2.Height = 270

Text2.Top = 1320: Text2.Left = 1080

Text2.Text = ""

Timer1.Interval = 10 'Timer的属性,必须设置

End Sub

'以上部分是设置各控件的大小、位置和初始属性,为了便于演示才加的,

'你可以自行设计好各控件的大小、位置和初始属性,无需这些代码。

'================================================================

Private Sub Timer1_Timer()

If Text1 "" Then

If Len(Text1) 1 Then Text1 = Left(Text1, 1)

If Asc("a") = Asc(Text1) And Asc(Text1) = Asc("z") _

Then Text1 = Chr(Asc(Text1) - 32)

If Check1.Value = 1 And GetAsyncKeyState(vbKeyControl) 0 _

And GetAsyncKeyState(Asc(Text1)) 0 Then

i = i + 1

If i = 1 Then Call Command1_Click

Else

i = 0

End If

End If

If Text2 "" Then

If Len(Text2) 1 Then Text2 = Left(Text2, 1)

If Asc("a") = Asc(Text2) And Asc(Text2) = Asc("z") _

Then Text2 = Chr(Asc(Text2) - 32)

If Check2.Value = 1 And GetAsyncKeyState(vbKeyShift) 0 _

And GetAsyncKeyState(Asc(Text2)) 0 Then

i = i + 1

If i = 1 Then Call Command1_Click

Else

i = 0

End If

End If

End Sub

Private Sub Command1_Click()

print "你好"

SendKeys "你好"

End Sub

vb.net 全局热键

见下面的代码

Public Class Form1

Public Declare Auto Function RegisterHotKey Lib "user32.dll" Alias "RegisterHotKey" (ByVal hwnd As IntPtr, ByVal id As Integer, ByVal fsModifiers As Integer, ByVal vk As Integer) As Boolean

Public Declare Auto Function UnRegisterHotKey Lib "user32.dll" Alias "UnregisterHotKey" (ByVal hwnd As IntPtr, ByVal id As Integer) As Boolean

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

'注册全局热键 

RegisterHotKey(Handle, 0, 0, Keys.F4)

'第3个参数意义: 0=nothing 1 -alt 2-ctrl 3-ctrl+alt 4-shift 5-alt+shift 6-ctrl+shift 7-ctrl+shift+alt

End Sub

Private Sub Form1_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed

UnRegisterHotKey(Handle, 0)

End Sub

Protected Overrides Sub WndProc(ByRef m As Message)

If m.Msg = 786 Then

Me.Activate()

End If

MyBase.WndProc(m)

End Sub

End Class

VB .net中如何调用底层键盘钩子或其他方法屏蔽全局所有按键

.net的代码真木有写过。

VB 可以屏蔽 包括ctrl+alt+del在内的所有键盘按键消息

其实你只要后台截获按键的消息后,直接屏蔽掉就可以了。

VB代码我有 net木有。


网站栏目:vb.net全局键盘 vb键盘控制
分享地址:http://hbruida.cn/article/hgccpi.html