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
![Android phone startup screen with logo](https://www.devx.com/wp-content/uploads/3cd77f7ethumbnail-300x150.jpeg)