home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Game Programming for Teens / VBGPFT.cdr / sources / chapter11 / KeyboardTest / Form1.frm (.txt) next >
Encoding:
Visual Basic Form  |  2004-10-22  |  5.3 KB  |  190 lines

  1. VERSION 5.00
  2. Begin VB.Form Form1 
  3.    BorderStyle     =   1  'Fixed Single
  4.    Caption         =   "Form1"
  5.    ClientHeight    =   3195
  6.    ClientLeft      =   45
  7.    ClientTop       =   330
  8.    ClientWidth     =   4680
  9.    LinkTopic       =   "Form1"
  10.    MaxButton       =   0   'False
  11.    MinButton       =   0   'False
  12.    ScaleHeight     =   213
  13.    ScaleMode       =   3  'Pixel
  14.    ScaleWidth      =   312
  15.    StartUpPosition =   2  'CenterScreen
  16. Attribute VB_Name = "Form1"
  17. Attribute VB_GlobalNameSpace = False
  18. Attribute VB_Creatable = False
  19. Attribute VB_PredeclaredId = True
  20. Attribute VB_Exposed = False
  21. '------------------------------------------------------------
  22. ' Visual Basic Game Programming For Teens
  23. ' KeyboardTest Program
  24. '------------------------------------------------------------
  25. Option Explicit
  26. Option Base 0
  27. 'Windows API functions and structures
  28. Private Declare Function GetTickCount Lib "kernel32" () As Long
  29. 'program variables
  30. Dim dx As New DirectX8
  31. Dim dinput As DirectInput8
  32. Dim diDevice As DirectInputDevice8
  33. Dim diState As DIKEYBOARDSTATE
  34. Dim sKeyNames(255) As String
  35. Private Sub Form_Load()
  36.     'set up the form
  37.     Form1.Caption = "KeyboardTest"
  38.     Form1.Show
  39.     Set dinput = dx.DirectInputCreate()
  40.     If Err.Number <> 0 Then
  41.         MsgBox "Error creating DirectInput object"
  42.         End
  43.     End If
  44.     'create an interface to the keyboard
  45.     Set diDevice = dinput.CreateDevice("GUID_SysKeyboard")
  46.     diDevice.SetCommonDataFormat DIFORMAT_KEYBOARD
  47.     diDevice.SetCooperativeLevel hwnd, DISCL_BACKGROUND Or DISCL_NONEXCLUSIVE
  48.     diDevice.Acquire
  49.     'initialize the keyboard value array
  50.     InitKeyNames
  51.     'main game loop
  52.     Do While True
  53.         Check_Keyboard
  54.         DoEvents
  55.     Loop
  56. End Sub
  57. Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  58.     Shutdown
  59. End Sub
  60. Public Sub Check_Keyboard()
  61.     Dim n As Long
  62.     'get the list of pressed keys
  63.     diDevice.GetDeviceStateKeyboard diState
  64.     'scan the entire list for pressed keys
  65.     For n = 0 To 255
  66.         If diState.Key(n) > 0 Then
  67.             Debug.Print n & " = " & sKeyNames(n)
  68.         End If
  69.     Next
  70.     'check for ESC key
  71.     If diState.Key(1) > 0 Then Shutdown
  72. End Sub
  73. Public Sub Shutdown()
  74.     diDevice.Unacquire
  75.     Set diDevice = Nothing
  76.     Set dinput = Nothing
  77.     Set dx = Nothing
  78.     End
  79. End Sub
  80. Private Sub InitKeyNames()
  81.     sKeyNames(1) = "ESC"
  82.     sKeyNames(2) = "1"
  83.     sKeyNames(3) = "2"
  84.     sKeyNames(4) = "3"
  85.     sKeyNames(5) = "4"
  86.     sKeyNames(6) = "5"
  87.     sKeyNames(7) = "6"
  88.     sKeyNames(8) = "7"
  89.     sKeyNames(9) = "8"
  90.     sKeyNames(10) = "9"
  91.     sKeyNames(11) = "0"
  92.     sKeyNames(12) = "-"
  93.     sKeyNames(13) = "="
  94.     sKeyNames(14) = "BACKSPACE"
  95.     sKeyNames(15) = "TAB"
  96.     sKeyNames(16) = "Q"
  97.     sKeyNames(17) = "W"
  98.     sKeyNames(18) = "E"
  99.     sKeyNames(19) = "R"
  100.     sKeyNames(20) = "T"
  101.     sKeyNames(21) = "Y"
  102.     sKeyNames(22) = "U"
  103.     sKeyNames(23) = "I"
  104.     sKeyNames(24) = "O"
  105.     sKeyNames(25) = "P"
  106.     sKeyNames(26) = "["
  107.     sKeyNames(27) = " ]"
  108.     sKeyNames(28) = "ENTER"
  109.     sKeyNames(29) = "LCTRL"
  110.     sKeyNames(30) = "A"
  111.     sKeyNames(31) = "S"
  112.     sKeyNames(32) = "D"
  113.     sKeyNames(33) = "F"
  114.     sKeyNames(34) = "G"
  115.     sKeyNames(35) = "H"
  116.     sKeyNames(36) = "J"
  117.     sKeyNames(37) = "K"
  118.     sKeyNames(38) = "L"
  119.     sKeyNames(39) = ";"
  120.     sKeyNames(40) = "'"
  121.     sKeyNames(41) = "`"
  122.     sKeyNames(42) = "LSHIFT"
  123.     sKeyNames(43) = "\"
  124.     sKeyNames(44) = "Z"
  125.     sKeyNames(45) = "X"
  126.     sKeyNames(46) = "C"
  127.     sKeyNames(47) = "V"
  128.     sKeyNames(48) = "B"
  129.     sKeyNames(49) = "N"
  130.     sKeyNames(50) = "M"
  131.     sKeyNames(51) = ","
  132.     sKeyNames(52) = "."
  133.     sKeyNames(53) = "/"
  134.     sKeyNames(54) = "RSHIFT"
  135.     sKeyNames(55) = "NUMPAD*"
  136.     sKeyNames(56) = "LALT"
  137.     sKeyNames(57) = "SPACE"
  138.     sKeyNames(58) = "CAPSLOCK"
  139.     sKeyNames(59) = "F1"
  140.     sKeyNames(60) = "F2"
  141.     sKeyNames(61) = "F3"
  142.     sKeyNames(62) = "F4"
  143.     sKeyNames(63) = "F5"
  144.     sKeyNames(64) = "F6"
  145.     sKeyNames(65) = "F7"
  146.     sKeyNames(66) = "F8"
  147.     sKeyNames(67) = "F9"
  148.     sKeyNames(68) = "F10"
  149.     sKeyNames(69) = "NUMLOCK"
  150.     sKeyNames(70) = "SCRLLOCK"
  151.     sKeyNames(71) = "NUMPAD7"
  152.     sKeyNames(72) = "NUMPAD8"
  153.     sKeyNames(73) = "NUMPAD9"
  154.     sKeyNames(74) = "NUMPAD-"
  155.     sKeyNames(75) = "NUMPAD4"
  156.     sKeyNames(76) = "NUMPAD5"
  157.     sKeyNames(77) = "NUMPAD6"
  158.     sKeyNames(78) = "NUMPAD+"
  159.     sKeyNames(79) = "NUMPAD1"
  160.     sKeyNames(80) = "NUMPAD2"
  161.     sKeyNames(81) = "NUMPAD3"
  162.     sKeyNames(82) = "NUMPAD0"
  163.     sKeyNames(83) = "NUMPAD."
  164.     sKeyNames(87) = "F11"
  165.     sKeyNames(88) = "F12"
  166.     sKeyNames(86) = "F13"
  167.     sKeyNames(84) = "F14"
  168.     sKeyNames(85) = "F15"
  169.     sKeyNames(91) = "NUMPAD,"
  170.     sKeyNames(116) = "PAUSE"
  171.     sKeyNames(156) = "NUMPADENTER"
  172.     sKeyNames(157) = "RCONTROL"
  173.     sKeyNames(181) = "NUMPAD/"
  174.     sKeyNames(183) = "SYSRQ"
  175.     sKeyNames(184) = "RALT"
  176.     sKeyNames(199) = "HOME"
  177.     sKeyNames(200) = "UP"
  178.     sKeyNames(201) = "PAGE UP"
  179.     sKeyNames(203) = "LEFT"
  180.     sKeyNames(205) = "RIGHT"
  181.     sKeyNames(207) = "END"
  182.     sKeyNames(208) = "DOWN"
  183.     sKeyNames(209) = "PAGE DN"
  184.     sKeyNames(210) = "INSERT"
  185.     sKeyNames(211) = "DELETE"
  186.     sKeyNames(219) = "LWIN"
  187.     sKeyNames(220) = "RWIN"
  188.     sKeyNames(221) = "APPS"
  189. End Sub
  190.