Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: VB4/32,VB5,VB6
Expertise: Intermediate
Jul 3, 1999



Building the Right Environment to Support AI, Machine Learning and Deep Learning

EscapePressed - Check whether the Esc key was pressed

Private Type POINTAPI
    x As Long
    y As Long
End Type

Private Type MSGTYPE
    hWnd As Long
    message As Long
    wParam As Long
    lParam As Long
    time As Long
    pt As POINTAPI
End Type

Private Declare Function GetInputState Lib "user32" () As Long
Private 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 Long

Const WM_KEYFIRST = &H100
Const WM_KEYLAST = &H108
Const 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
'     Loop

Public 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
                ' Escape was pressed, ask user to confirm
                EscapePressed = (MsgBox(msgText, vbQuestion + vbYesNo) = vbYes)
            End If
         End If
    End If

End Function

Marco Losavio
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date