EscapePressed – Check whether the Esc key was pressed

Private Type POINTAPI    x As Long    y As LongEnd TypePrivate Type MSGTYPE    hWnd As Long    message As Long    wParam As Long    lParam As Long    time As Long    pt As POINTAPIEnd TypePrivate Declare Function GetInputState Lib "user32" () As LongPrivate Declare Function PeekMessage Lib "user32" Alias "PeekMessageA" (lpMsg _    As MSGTYPE, ByVal hWnd As Long, ByVal wMsgFilterMin As Long, _    ByVal wMsgFilterMax As Long, ByVal wRemoveMsg As Long) As LongConst WM_KEYFIRST = &H100Const WM_KEYLAST = &H108Const PM_REMOVE = &H1' Returns the code of the last key that has been pressed, zero otherwise' Check whether the user pressed the escape key, and optionally displays a ' message' box that asks him or her to confirm that the job should be canceled'' example:'     Do'        ' do your processing here'        If EscapePressed("Do you want to stop processing?") Then Exit Do'     LoopPublic Function EscapePressed(Optional msgText As String) As Boolean    Dim mess As MSGTYPE    If GetInputState() Then        PeekMessage mess, 0, WM_KEYFIRST, WM_KEYLAST, PM_REMOVE        If mess.wParam = vbKeyEscape Then            If Len(msgText) = 0 Then                ' Escape was pressed, return True without showing a msgbox                EscapePressed = True            Else                ' Escape was pressed, ask user to confirm                EscapePressed = (MsgBox(msgText, vbQuestion + vbYesNo) = vbYes)            End If         End If    End IfEnd Function

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: