调用方法很简单,在Form中如下书写代码:
Private Sub Form_Load()
SetHotkey 1, "Ctrl,112", "Add" '按 Ctrl+F1 激活指定程序,F1的Ascii码为112
SetHotkey 2, 113, "Add" '按 F2 激活指定程序,F2的Ascii码为113
SetHotkey 3, "Ctrl+Alt,113", "Add" '按 Ctrl+Alt+F2 激活指定程序,F2的Ascii码为113
End Sub
Private Sub Form_Unload(Cancel As Integer)
SetHotkey 1, "", "Del" '退出程序是一定要用上的,不然会导至程序死掉
SetHotkey 2, "", "Del"
SetHotkey 3, "", "Del"
End Sub
在项目中新建一个模块(bas文件),然后代码如下(此模块中需要我们修改的是Function keyWndproc(),这里的代码实现的是当系统中按了热键后的调用代码):
Option Explicit
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private 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
Private Declare Function RegisterHotKey Lib "user32" (ByVal hwnd As Long, ByVal id As Long, ByVal fskey_Modifiers As Long, ByVal vk As Long) As Long
Private Declare Function UnregisterHotKey Lib "user32" (ByVal hwnd As Long, ByVal id As Long) As Long
Const WM_HOTKEY = &H312
Const MOD_ALT = &H1
Const MOD_CONTROL = &H2
Const MOD_SHIFT = &H4
Const GWL_WNDPROC = (-4) '窗口函数的地址
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
Case 1 '激活 3 个热键后,3 个热键所对应的操作,大家在其他的程序中,只要修改此处就可以了
郁闷,我使用的这个空间的IDC商竟然每隔一段时间就要检测绑定的域名是否再未提交备案列表中,如果是就删除,但是却不检测我是否提交了备案,按照他们说法删除域名一天后才能再次绑定,否则这一天内绑定了到下次检测就会再删除。这样我就不停的在后台看,看是否被删除,如果被删除,就再把域名绑定上去,;(很受伤!
于是用V ......