定义一个系统范围的热键.
#Include <WinAPIEx.au3>
_WinAPI_RegisterHotKey ( $hWnd, $ID, $iModifiers, $vKey )
$hWnd | 接收 WM_HOTKEY 热键消息的窗口句柄, 如果此参数为 0,WM_HOTKEY 消息传递到调用线程的消息队列, 且进程必须在消息循环内. |
$ID | 热键的标识符. 应用程序必须指定 id 值范围为 0x0000 到 0xBFFF. |
$iModifiers | 指定 $vKey 参数特定键的点击辅助键,用以产生 WM_HOTKEY 消息. 参数可以是以下值的组合: $MOD_ALT --- + ALT 键 $MOD_CONTROL --- + 任一 Ctri 键 $MOD_SHIFT --- + Shift 键 $MOD_WIN --- + 任一微软徽标键 *Windows 7 或更高系统 $MOD_NOREPEAT --- 更改热键状态,使键盘不会自动重复产生多个热键通知 |
$vKey | 指定热键的虚拟键代码 ($VK_*). |
成功: | 返回 1. |
失败: | 返回 0,并设置@error标志为非 0 值. |
在MSDN中搜索
#Include <APIConstants.au3>
#Include <WinAPIEx.au3>
Opt('MustDeclareVars', 1)
Opt('TrayAutoPause', 0)
Global $hWnd
OnAutoItExitRegister('OnAutoItExit')
$hWnd = GUICreate('')
GUIRegisterMsg($WM_HOTKEY, 'WM_HOTKEY')
; 设置 ALT-D
_WinAPI_RegisterHotKey($hWnd, 0x0144, $MOD_ALT, 0x44)
; 设置 ESC
_WinAPI_RegisterHotKey($hWnd, 0x011B, 0, 0x1B)
While 1
Sleep(1000)
WEnd
Func WM_HOTKEY($hWnd, $iMsg, $wParam, $lParam)
Switch _WinAPI_HiWord($lParam)
Case 0x44
MsgBox(0, '', 'You pressed ALT-D')
Case 0x1B
Exit
EndSwitch
EndFunc ;==>WM_HOTKEY
Func OnAutoItExit()
_WinAPI_UnregisterHotKey($hWnd, 0x0144)
EndFunc ;==>OnAutoItExit