Advertisement
Guest User

Untitled

a guest
Jul 18th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.53 KB | None | 0 0
  1. $01 value VK_LBUTTON
  2. $02 value VK_RBUTTON
  3. $03 value VK_CANCEL
  4. $04 value VK_MBUTTON
  5. $08 value VK_BACK
  6. $09 value VK_TAB
  7. $0c value VK_CLEAR
  8. $0d value VK_RETURN
  9. $10 value VK_SHIFT
  10. $11 value VK_CONTROL
  11. $12 value VK_MENU
  12. $13 value VK_PAUSE
  13. $14 value VK_CAPITAL
  14. $1b value VK_ESCAPE
  15. $20 value VK_SPACE
  16. $21 value VK_PRIOR
  17. $22 value VK_NEXT
  18. $23 value VK_END
  19. $24 value VK_HOME
  20. $25 value VK_LEFT
  21. $26 value VK_UP
  22. $27 value VK_RIGHT
  23. $28 value VK_DOWN
  24. $29 value VK_SELECT
  25. $2a value VK_PRINT
  26. $2b value VK_EXECUTE
  27. $2c value VK_SNAPSHOT
  28. $2d value VK_INSERT
  29. $2e value VK_DELETE
  30. $2f value VK_HELP
  31. $5b value VK_LWIN
  32. $5c value VK_RWIN
  33. $5d value VK_APPS
  34. $60 value VK_NUMPAD0
  35. $61 value VK_NUMPAD1
  36. $62 value VK_NUMPAD2
  37. $63 value VK_NUMPAD3
  38. $64 value VK_NUMPAD4
  39. $65 value VK_NUMPAD5
  40. $66 value VK_NUMPAD6
  41. $67 value VK_NUMPAD7
  42. $68 value VK_NUMPAD8
  43. $69 value VK_NUMPAD9
  44. $6a value VK_MULTIPLY
  45. $6b value VK_ADD
  46. $6c value VK_SEPARATOR
  47. $6d value VK_SUBTRACT
  48. $6e value VK_DECIMAL
  49. $6f value VK_DIVIDE
  50. $70 value VK_F1
  51. $71 value VK_F2
  52. $72 value VK_F3
  53. $73 value VK_F4
  54. $74 value VK_F5
  55. $75 value VK_F6
  56. $76 value VK_F7
  57. $77 value VK_F8
  58. $78 value VK_F9
  59. $79 value VK_F10
  60. $7a value VK_F11
  61. $7b value VK_F12
  62. $7c value VK_F13
  63. $7d value VK_F14
  64. $7e value VK_F15
  65. $7f value VK_F16
  66. $80 value VK_F17
  67. $81 value VK_F18
  68. $82 value VK_F19
  69. $83 value VK_F20
  70. $84 value VK_F21
  71. $85 value VK_F22
  72. $86 value VK_F23
  73. $87 value VK_F24
  74. $90 value VK_NUMLOCK
  75. $91 value VK_SCROLL
  76. $a0 value VK_LSHIFT
  77. $a1 value VK_RSHIFT
  78. $a2 value VK_LCONTROL
  79. $a3 value VK_RCONTROL
  80. $a4 value VK_LMENU
  81. $a5 value VK_RMENU
  82. $ba value VK_OEM_1
  83. $dc value VK_OEM_5
  84. $bb value VK_OEM_PLUS
  85. $bc value VK_OEM_COMMA
  86. $bd value VK_OEM_MINUS
  87. $be value VK_OEM_PERIOD
  88. $de value VK_OEM_7
  89. $e5 value VK_PROCESSKEY
  90. $f6 value VK_ATTN
  91. $f7 value VK_CRSEL
  92. $f8 value VK_EXSEL
  93. $f9 value VK_EREOF
  94. $fa value VK_PLAY
  95. $fb value VK_ZOOM
  96. $fc value VK_NONAME
  97. $fd value VK_PA1
  98. $fe value VK_OEM_CLEAR
  99.  
  100. loadlib user32.dll
  101. value user32.dll
  102.  
  103. user32.dll 1 dllfun VkKeyScan VkKeyScanA
  104. user32.dll 4 dllfun keybd_event keybd_event
  105.  
  106. : key-down ( vk -- ) 0 0 0 keybd_event drop ;
  107. : key-up ( vk -- ) 0 2 0 keybd_event drop ;
  108. : vkey ( vk -- ) dup key-down 20 ms key-up 20 ms ;
  109. : keystroke ( char -- ) VkKeyScan vkey ;
  110. : with-key ( fn vk -- ) >r r@ key-down 20 ms execute r> key-up ;
  111.  
  112. create table 256 allot
  113. 0 table 256 fill
  114.  
  115. { s" ~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:\"ZXCVBNM<>?" bounds do
  116. 1 i c@ table + c!
  117. loop }!
  118.  
  119. : press ( char -- )
  120. dup table + c@ if
  121. ['] keystroke VK_SHIFT with-key
  122. else
  123. keystroke
  124. then
  125. ;
  126.  
  127. : keytype ( addr len -- )
  128. bounds do
  129. i c@ press
  130. loop
  131. ;
  132.  
  133. : key" postpone s" [c] keytype ; immediate
  134.  
  135. : test
  136. key" Hello world!\n"
  137. ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement