Advertisement
Guest User

Untitled

a guest
Jan 8th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include once "windows.bi"
  2. Declare Sub KeyboardListener
  3.  
  4. enum ProcessMessages
  5.     pmQuit    = WM_USER+1
  6.     pmKeyDown = WM_USER+2
  7. end enum
  8.  
  9. Dim Shared as any ptr MainThread, ListenerThread
  10. MainThread = GetCurrentThreadID()
  11.  
  12. CreateThread(0, 0, @KeyboardListener, 0, 0, ListenerThread)
  13.  
  14. Do
  15.     Dim Msg as MSG
  16.     If PeekMessage(@Msg, null, 0, 0, PM_REMOVE) Then
  17.         Select case Msg.message
  18.         Case pmQuit
  19.             Exit Do
  20.            
  21.         Case pmKeyDown
  22.             if Msg.wParam = 13 Then
  23.                 Print   'Goto newline
  24.             Else
  25.                 Print Chr(Msg.wParam);
  26.             End If
  27.            
  28.         end select
  29.     end if
  30.    
  31.     Sleep 1,1
  32. Loop
  33.  
  34. Print !"\nWe have ended!"
  35. sleep
  36.  
  37.  
  38. Sub KeyboardListener
  39.     Dim KeyPress as String
  40.     Do
  41.         Keypress = Inkey
  42.        
  43.         If KeyPress <> "" Then
  44.             PostThreadMessage(MainThread, pmKeyDown, cast(wParam, KeyPress[0]), 0)
  45.         End If        
  46.        
  47.         Sleep 1,1
  48.     Loop until Keypress = Chr(27)
  49.    
  50.     'Post quit message that we have ended
  51.     PostThreadMessage (MainThread, pmQuit, 0, 0)
  52. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement