home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Game Programming for Teens / VBGPFT.cdr / DirectX8 / dx8vbsdk.exe / samples / multimedia / vbsamples / directinput / keyboard / frmmain.frm (.txt) < prev    next >
Encoding:
Visual Basic Form  |  2000-10-02  |  6.2 KB  |  185 lines

  1. VERSION 5.00
  2. Begin VB.Form frmMain 
  3.    BorderStyle     =   1  'Fixed Single
  4.    Caption         =   "DirectInput Keyboard Sample"
  5.    ClientHeight    =   3435
  6.    ClientLeft      =   45
  7.    ClientTop       =   330
  8.    ClientWidth     =   5880
  9.    Icon            =   "frmMain.frx":0000
  10.    LinkTopic       =   "Form1"
  11.    MaxButton       =   0   'False
  12.    MinButton       =   0   'False
  13.    ScaleHeight     =   3435
  14.    ScaleWidth      =   5880
  15.    StartUpPosition =   3  'Windows Default
  16.    Begin VB.Timer tmrKey 
  17.       Left            =   0
  18.       Top             =   0
  19.    End
  20.    Begin VB.ListBox lstKeys 
  21.       Height          =   2595
  22.       Left            =   120
  23.       TabIndex        =   0
  24.       Top             =   360
  25.       Width           =   5655
  26.    End
  27. Attribute VB_Name = "frmMain"
  28. Attribute VB_GlobalNameSpace = False
  29. Attribute VB_Creatable = False
  30. Attribute VB_PredeclaredId = True
  31. Attribute VB_Exposed = False
  32. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  33. '  Copyright (C) 2000 Microsoft Corporation.  All Rights Reserved.
  34. '  File:       FrmMain.frm
  35. '  Content:    This sample will show one way to use DirectInput with the keyboard
  36. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  37. Dim dx As New DirectX8
  38. Dim di As DirectInput8
  39. Dim diDEV As DirectInputDevice8
  40. Dim diState As DIKEYBOARDSTATE
  41. Dim iKeyCounter As Integer
  42. Dim aKeys(255) As String
  43. Private Sub Form_Load()
  44.     Set di = dx.directInputCreate()
  45.         
  46.     If Err.Number <> 0 Then
  47.         MsgBox "Error starting Direct Input, please make sure you have DirectX installed", vbApplicationModal
  48.         End
  49.     End If
  50.         
  51.         
  52.     Set diDEV = di.CreateDevice("GUID_SysKeyboard")
  53.     diDEV.setCommonDataFormat DIFORMAT_KEYBOARD
  54.     diDEV.setCooperativeLevel Me.hWnd, DISCL_BACKGROUND Or DISCL_NONEXCLUSIVE
  55.     Me.Show
  56.     diDEV.acquire
  57.         
  58.     tmrKey.Interval = 10
  59.     tmrKey.Enabled = True
  60. End Sub
  61. Private Sub Form_Unload(Cancel As Integer)
  62.     diDEV.unacquire
  63. End Sub
  64. Private Sub tmrKey_Timer()
  65.     lstKeys.Clear
  66.     diDEV.getDeviceStateKeyboard diState
  67.     For iKeyCounter = 0 To 255
  68.         If diState.Key(iKeyCounter) <> 0 Then
  69.             lstKeys.AddItem KeyNames(iKeyCounter)
  70.         End If
  71.     Next
  72.     DoEvents
  73. End Sub
  74. Function KeyNames(iNum As Integer) As String
  75.     aKeys(1) = "DIK_ESCAPE"
  76.     aKeys(2) = "DIK_1  On main keyboard"
  77.     aKeys(3) = "DIK_2  On main keyboard"
  78.     aKeys(4) = "DIK_3  On main keyboard"
  79.     aKeys(5) = "DIK_4  On main keyboard"
  80.     aKeys(6) = "DIK_5  On main keyboard"
  81.     aKeys(7) = "DIK_6  On main keyboard"
  82.     aKeys(8) = "DIK_7  On main keyboard"
  83.     aKeys(9) = "DIK_8  On main keyboard"
  84.     aKeys(10) = "DIK_9  On main keyboard"
  85.     aKeys(11) = "DIK_0  On main keyboard"
  86.     aKeys(12) = "DIK_MINUS  On main keyboard"
  87.     aKeys(13) = "DIK_EQUALS  On main keyboard"
  88.     aKeys(14) = "DIK_BACK BACKSPACE"
  89.     aKeys(15) = "DIK_TAB"
  90.     aKeys(16) = "DIK_Q"
  91.     aKeys(17) = "DIK_W"
  92.     aKeys(18) = "DIK_E"
  93.     aKeys(19) = "DIK_R"
  94.     aKeys(20) = "DIK_T"
  95.     aKeys(21) = "DIK_Y"
  96.     aKeys(22) = "DIK_U"
  97.     aKeys(23) = "DIK_I"
  98.     aKeys(24) = "DIK_O"
  99.     aKeys(25) = "DIK_P"
  100.     aKeys(26) = "DIK_LBRACKET  ["
  101.     aKeys(27) = "DIK_RBRACKET  ]"
  102.     aKeys(28) = "DIK_RETURN  ENTER on main keyboard"
  103.     aKeys(29) = "DIK_LCONTROL  Left CTRL Key"
  104.     aKeys(30) = "DIK_A"
  105.     aKeys(31) = "DIK_S"
  106.     aKeys(32) = "DIK_D"
  107.     aKeys(33) = "DIK_F"
  108.     aKeys(34) = "DIK_G"
  109.     aKeys(35) = "DIK_H"
  110.     aKeys(36) = "DIK_J"
  111.     aKeys(37) = "DIK_K"
  112.     aKeys(38) = "DIK_L"
  113.     aKeys(39) = "DIK_SEMICOLON"
  114.     aKeys(40) = "DIK_APOSTROPHE"
  115.     aKeys(41) = "DIK_GRAVE  Grave accent (`)"
  116.     aKeys(42) = "DIK_LSHIFT  Left SHIFT"
  117.     aKeys(43) = "DIK_BACKSLASH"
  118.     aKeys(44) = "DIK_Z"
  119.     aKeys(45) = "DIK_X"
  120.     aKeys(46) = "DIK_C"
  121.     aKeys(47) = "DIK_V"
  122.     aKeys(48) = "DIK_B"
  123.     aKeys(49) = "DIK_N"
  124.     aKeys(50) = "DIK_M"
  125.     aKeys(51) = "DIK_COMMA"
  126.     aKeys(52) = "DIK_PERIOD  On main keyboard"
  127.     aKeys(53) = "DIK_SLASH  Forward slash (/)on main keyboard"
  128.     aKeys(54) = "DIK_RSHIFT  Right SHIFT"
  129.     aKeys(55) = "DIK_MULTIPLY  Asterisk on numeric keypad"
  130.     aKeys(56) = "DIK_LMENU  Left ALT"
  131.     aKeys(57) = "DIK_SPACE Spacebar"
  132.     aKeys(58) = "DIK_CAPITAL  CAPS LOCK"
  133.     aKeys(59) = "DIK_F1"
  134.     aKeys(60) = "DIK_F2"
  135.     aKeys(61) = "DIK_F3"
  136.     aKeys(62) = "DIK_F4"
  137.     aKeys(63) = "DIK_F5"
  138.     aKeys(64) = "DIK_F6"
  139.     aKeys(65) = "DIK_F7"
  140.     aKeys(66) = "DIK_F8"
  141.     aKeys(67) = "DIK_F9"
  142.     aKeys(68) = "DIK_F10"
  143.     aKeys(69) = "vDIK_NUMLOCK"
  144.     aKeys(70) = "DIK_SCROLL  SCROLL LOCK"
  145.     aKeys(71) = "DIK_NUMPAD7"
  146.     aKeys(72) = "DIK_NUMPAD8"
  147.     aKeys(73) = "DIK_NUMPAD9"
  148.     aKeys(74) = "DIK_SUBTRACT  Hyphen (minus sign) on numeric keypad"
  149.     aKeys(75) = "DIK_NUMPAD4"
  150.     aKeys(76) = "DIK_NUMPAD5"
  151.     aKeys(77) = "DIK_NUMPAD6"
  152.     aKeys(78) = "DIK_ADD  Plus sign on numeric keypad"
  153.     aKeys(79) = "DIK_NUMPAD1"
  154.     aKeys(80) = "DIK_NUMPAD2"
  155.     aKeys(81) = "DIK_NUMPAD3"
  156.     aKeys(82) = "DIK_NUMPAD0"
  157.     aKeys(83) = "DIK_DECIMAL  Period (decimal point) on numeric keypad"
  158.     aKeys(87) = "DIK_F11"
  159.     aKeys(88) = "DIK_F12"
  160.     aKeys(86) = "DIK_F13"
  161.     aKeys(84) = "DIK_F14"
  162.     aKeys(85) = "DIK_F15"
  163.     aKeys(156) = "DIK_NUMPADENTER"
  164.     aKeys(157) = "DIK_RCONTROL  Right CTRL key"
  165.     aKeys(91) = "DIK_NUMPADCOMMA Comma on NEC PC98 numeric keypad"
  166.     aKeys(181) = "DIK_DIVIDE  Forward slash (/)on numeric keypad"
  167.     aKeys(183) = "DIK_SYSRQ"
  168.     aKeys(184) = "DIK_RMENU  Right ALT"
  169.     aKeys(199) = "DIK_HOME"
  170.     aKeys(200) = "DIK_UP  Up arrow"
  171.     aKeys(201) = "DIK_PRIOR  PAGE UP"
  172.     aKeys(203) = "DIK_LEFT  Left arrow"
  173.     aKeys(205) = "DIK_RIGHT  Right arrow"
  174.     aKeys(207) = "DIK_END"
  175.     aKeys(208) = "DIK_DOWN  Down arrow"
  176.     aKeys(209) = "DIK_NEXT  PAGE DOWN"
  177.     aKeys(210) = "DIK_INSERT"
  178.     aKeys(211) = "DIK_DELETE"
  179.     aKeys(219) = "DIK_LWIN  Left Windows key"
  180.     aKeys(220) = "DIK_RWIN  Right Windows key"
  181.     aKeys(221) = "DIK_APPS  Application key"
  182.     aKeys(116) = "DIK_PAUSE"
  183.     KeyNames = aKeys(iNum)
  184. End Function
  185.