网站首页 > 文章中心 > 其它

vb.net注册组合热键

作者:小编 更新时间:2023-08-16 09:20:21 浏览量:259人看过

求vb如何注册热键?

RegisterHotKey这个API可以实现.

至于API声明,可以查查API大全.

Public Sub Hitjian()

Dim msgb As Msg

'注册Ctrl◆E为热键

RegisterHotKey Main.hWnd, HBFFF, MOD_CONTROL, vbKeyE

Main.Show '显示Hot对象

HotKey_Flg = False

'循环检测

Do While Not HotKey_Flg

'等待消息

WaitMessage

'检测热键是否被按下

If PeekMessage(msgb, Main.hWnd, WM_HOTKEY, WM_HOTKEY, PM_REMOVE) Then

'这里可以填写事件

'Dim i As Long

'i = EnumWindows(AddressOf EnumWindowsProc, 0)

If JinJihuibiText "进行待机" Then

Shell JinJihuibiText, vbMaximizedFocus

Else

进行待机

End If

'转让控制权,允许操作系统处理其他事件

DoEvents

Loop

End Sub

如何用VB.NET设置菜单项的热键

不清楚热键和快捷键是什么区别

CheckOnClick 在菜单项上单击时是否改变Checked属性

Checked 设置/获取 菜单项是否被选中

VB如何注册热键,详细点

新建一模块,输入下列内容

'-------------------------------------

'系统热键模块

'------------------------------------

Option Explicit

Const MOD_ALT = H1

Dim key_preWinProc As Long '用来保存窗口信息

Dim key_Modifiers As Long, key_uVirtKey As Long, key_idHotKey As Long

Dim key_IsWinAddress As Boolean '是否取得窗口信息的判断

Function keyWndproc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

If Msg = WM_HOTKEY Then

Select Case wParam 'wParam 值就是 key_idHotKey

MsgBox "aa"

MsgBox "bb"

MsgBox "cc"

End Select

'将消息传送给指定的窗口

keyWndproc = CallWindowProc(key_preWinProc, hwnd, Msg, wParam, lParam)

End Function

Function SetHotkey(ByVal KeyId As Long, ByVal KeyAss0 As String, ByVal Action As String)

Dim KeyAss1 As Long

Dim i As Long

i = InStr(1, KeyAss0, ",")

If i = 0 Then

KeyAss1 = Val(KeyAss0)

KeyAss1 = Right(KeyAss0, Len(KeyAss0) - i)

key_idHotKey = 0

key_Modifiers = 0

key_uVirtKey = 0

If key_IsWinAddress = False Then '判断是否需要取得窗口信息,如果重复取得,再最后恢复窗口时,将会造成程序死掉

'记录原来的window程序地址

key_preWinProc = GetWindowLong(Form1.hwnd, GWL_WNDPROC)

'用自定义程序代替原来的window程序

SetWindowLong Form1.hwnd, GWL_WNDPROC, AddressOf keyWndproc

key_idHotKey = KeyId

Select Case Action

Case "Add"

key_uVirtKey = Val(KeyAss1)

RegisterHotKey Form1.hwnd, key_idHotKey, key_Modifiers, key_uVirtKey '向窗口注册系统热键

key_IsWinAddress = True '不需要再取得窗口信息

Case "Del"

SetWindowLong Form1.hwnd, GWL_WNDPROC, key_preWinProc '恢复窗口信息

UnregisterHotKey Form1.hwnd, key_uVirtKey '取消系统热键

key_IsWinAddress = False '可以再次取得窗口信息

VB中如何设置热键和快捷键?

希望某一字符成为访问键,也可以在该字符前面加上一个 () 字符.

可以通过在 Caption 属性设置中使用 字符来为命令、菜单、和控件指定访问键.

单击按钮执行操作,在程序执行时,按?CommandButton?的快捷键(ALT?◆?带下划线的字母)是一种快捷键方法(见上图).

access key(访问键),键盘上的字符,这些字符在菜单上或对话框中加有下划线或突出显示.同时按下 ALT 键和访问键可以激活菜单或对话框.有时候用来指代热键.

赋值访问键和快捷键:通过定义访问键和快捷键可改进键盘对菜单命令的访问.

①选取要赋值访问键的菜单项.

快捷键:

要对菜单项赋值快捷键,请按照以下步骤执行:

要删除快捷键赋值,应选取列表顶部的?"(none)".

怎么在VB中注册系统热键?

把下面的代码复制到窗体的代码里就行了,这里注册的是QQ的默认热键,你先运行这个程序,再运行QQ,就会把QQ的默认热键屏蔽掉了.

Private

Declare

Function

RegisterHotKey

Lib

(ByVal

hWnd

As

Long,

ByVal

id

fsModifiers

vk

Long)

Long

UnregisterHotKey

Const

MOD_ALT

=

'Alt键

MOD_CONTROL

'Ctrl键

MOD_SHIFT

'Shift键

Sub

Form_Load()

Dim

ret

RegisterHotKey(Me.hWnd,

MOD_CONTROL,

vbKeyZ)

'注册热键Ctrl◆Alt◆Z

If

Then

MsgBox

"注册热键失败,请使用其它热键!",

vbCritical,

"错误"

End

Form_QueryUnload(Cancel

Integer,

UnloadMode

Integer)

Call

UnregisterHotKey(Me.hWnd,

VB注册热键问题

检测热键是否按下,最好用PeekMessage函数.

注册热键时,最好把RegisterHotKey函数的第二个参数设为HBFFF以上的数.

程序结束时,应用UnregisterHotKey注销热键.

上面三条只是建议,不一定可以.

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章