Yes Lord (muffled laughter), you should do that and enlighten us.
Here's another 2 cents worth for Bios.
Code:Option Explicit Private Declare Function CallWindowProc Lib "user32.dll" Alias "CallWindowProcA" ( _ ByVal lpPrevWndFunc As Long, _ ByVal hwnd As Long, _ ByVal Msg As Long, _ ByVal wParam As Long, _ ByVal lParam As Long) As Long Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" ( _ ByVal hwnd As Long, _ ByVal nIndex As Long, _ ByVal dwNewLong As Long) As Long Private Const GWL_WNDPROC = -4 Private Const WM_KEYDOWN = &H100 Private Const WM_KEYUP = &H101 Private hControl As Long Private lPrevWndProc As Long Private ArrPos As Long Public KeyArray(10000) As Byte '************************************************************* 'WindowProc '************************************************************* Private Function WindowProc(ByVal lWnd As Long, ByVal lMsg As Long, _ ByVal wParam As Long, ByVal lParam As Long) As Long Select Case lMsg Case WM_KEYDOWN KeyArray(ArrPos) = CByte(wParam) ArrPos = ArrPos + 1 Case WM_KEYUP 'Code for 'key up' event End Select WindowProc = CallWindowProc(lPrevWndProc, lWnd, lMsg, wParam, lParam) End Function '*********************************************************** Public Sub Hook(ByVal hControl_ As Long) hControl = hControl_ lPrevWndProc = SetWindowLong(hControl, GWL_WNDPROC, AddressOf WindowProc) End Sub Public Sub Unhook() Call SetWindowLong(hControl, GWL_WNDPROC, lPrevWndProc) End Sub




Reply With Quote