#Include <WinAPI.au3>
#Include <WindowsConstants.au3>
Global $pKeyProc, $hHook, $Pressed, $Timer
$pKeyProc = DllCallbackRegister('_KeyProc', 'ptr', 'int;wparam;lparam')
$hHook = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, DllCallbackGetPtr($pKeyProc), _WinAPI_GetModuleHandle(0), 0)
GUICreate('Pause', 250, 100)
GUICtrlCreateLabel('Press any key...', 20, 40, 210, 14, 1)
GUISetState()
$Pressed = 0
$Timer = TimerInit()
Do
; 10 sec
If ($Pressed) Or (TimerDiff($Timer) > 10000) Then
ExitLoop
EndIf
Until GUIGetMsg() = -3
_WinAPI_UnhookWindowsHookEx($hHook)
DllCallbackFree($pKeyProc)
Func _KeyProc($iCode, $wParam, $lParam)
If $iCode > -1 Then
Switch $wParam
Case $WM_KEYDOWN, $WM_SYSKEYDOWN
$Pressed = 1
EndSwitch
EndIf
Return _WinAPI_CallNextHookEx($hHook, $iCode, $wParam, $lParam)
EndFunc ;==>_KeyProc