当前位置:首页 > 编程 > VB 编程 > 正文内容

2020-04-01 全局热键

Cristian_Ng5年前 (2021-01-16)VB 编程

'******************* .Bas 模块里面的代码

Option Explicit

Public Declare Function RegisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long

Public Declare Function UnregisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal id As Long) As Long

Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Public Const MOD_ALT = &H1

Public Const MOD_CONTROL = &H2

Public Const MOD_SHIFT = &H4

Public Const WM_HOTKEY = &H312

Public Const GWL_WNDPROC = (-4)

Public p&

Public Function wnd(ByVal hWnd As Long, ByVal Msg As Long, ByVal wp As Long, ByVal lp As Long) As Long

If Msg = WM_HOTKEY Then

If wp = &HB000 Then

'在这里你想干什么就写什么代码

MsgBox "你按了 Ctrl + Alt + V 键"

ElseIf wp = &HB001 Then

MsgBox "你按了 Ctrl + Alt + B 键"

End If

End If

wnd = CallWindowProc(p, hWnd, Msg, wp, lp)

End Function




'Form


Private Sub Form_Load()

   RegisterHotKey Me.hWnd, &HB000, MOD_CONTROL + MOD_ALT, vbKeyV '定义 Ctrl + Alt + V 为热键

   RegisterHotKey Me.hWnd, &HB001, MOD_CONTROL + MOD_ALT, vbKeyB '定义 Ctrl + Alt + B 为热键

   p = SetWindowLong(Me.hWnd, GWL_WNDPROC, AddressOf wnd)

End Sub


Private Sub Form_Unload(Cancel As Integer)

   Call UnregisterHotKey(Me.hWnd, &HB000&) '撤销热键的注册Ctrl + Alt + V

   Call UnregisterHotKey(Me.hWnd, &HB001&) '撤销热键的注册Ctrl + Alt + B

   SetWindowLong Me.hWnd, GWL_WNDPROC, p

End Sub

 


“2020-04-01 全局热键” 的相关文章

冒泡排序法

Private Sub Command1_Click()Dim a(1 To 10) As IntegerRandomizeList1.ClearFor i = 1 To 10a(i) = Rnd * 100List1.AddItem a(i)NextEnd SubPrivate Sub Comma...

VB 复制文件或文件夹到系统剪贴板

VB 复制文件或文件夹到系统剪贴板'-----------------------------------------------------------模块内容Option ExplicitPrivate Type POINTAPI    x As Long    y As LongEnd Typ...

Imagemagick 后台图片处理插件常用命令

  Imagemagick文档:http://www.imagemagick.org/script/command-line-options.php  convert功能强大,用来批处理图片的放大、缩小、裁剪、旋转、合并、水印、拼接、格式转换等都非常方便,特别适合后台的图片处理。1,获取图片信息  ...

VB 计算两个时间差

Private Sub Command1_Click()Text2.Text = Now()End SubPrivate Sub Command2_Click()MsgBox DateDiff("s", Text1.Text, Text2.Text)End SubPrivate Sub Form_L...

VB程序开发发布升级

VB程序开发发布升级 1、代码开发 2、皮肤模块(1) 调用SkinH_VB6.dll加载皮肤; 3、验证模块(1) 添加验证模块 4、升级模块(1) 启动时生成版本代码;(2) 将update.exe复制到软件目录下(3) 用远程软件更新管理器将软件的版本信息上传到服务器 5、安装包模块(1) 使...

文件关联

如何在 VB6.0中 创建自己的文件类型    在Windows中,当我们双击一个.txt文件的时候,“记事本”程序会自动打开,并且显示.txt文件的内容;当我们将一个.txt文件拖到“记事本”的图标上的时候,“记事本”程序也会自动打开,并且显示.txt文件的内容。在Windows中,这种技术称为“...