Tipp 0471 Einlesen aller verfügbaren Eingabegeräte
Autor/Einsender:
Datum:
  Alexander Csadek
21.11.2005
Entwicklungsumgebung:
DirectX-Version:
  VB 6
DirectX 8
Das DirectInput8-Objekt ist das Herzstück von DirectInput. Hierüber können alle Eingabe-Geräte (Maus, Tastatur usw.) aufgelistet und auch verwendet werden. Jedes Eingabegerät wird von einem DirectInputDevice8-Objekt repräsentiert, egal wie viele Eingabegeräte in einem Spiel verwendet werden.
Mit dem DirectInputEnumDevices8-Objekt  kann nicht nur die Anzahl der Eingabegeräte festgestellt, sondern auch Informationen über das jeweilige Geräte ausgelesen werden.
 
Option Explicit

Dim DX8  As DirectX8
Dim DI8  As DirectInput8
Dim DIED As DirectInputEnumDevices8

Private Sub Form_Load()
  On Error GoTo ErrOut

  Set DX8 = New DirectX8

  Set DI8 = DX8.DirectInputCreate()

  GetIOListe True
  DisplayInfos lst_DID.ListIndex + 1

  Exit Sub
ErrOut:
  MsgBox "Zugriff auf DirectInput nicht möglich." & vbCr & _
        Err.Number & "/" & Err.Description, vbInformation
  End
End Sub

Private Sub chk_attachedonly_Click()
  If chk_attachedonly.Value = 0 Then
    GetIOListe True
  Else
    GetIOListe False
  End If
  DisplayInfos lst_DID.ListIndex + 1
End Sub

Private Sub GetIOListe(Alle As Boolean)
  Dim i As Single

  On Error GoTo ErrOut
  Set DIED = Nothing

  If Alle Then
    Set DIED = DI8.GetDIDevices(0, DIEDFL_INCLUDEPHANTOMS)
  Else
    Set DIED = DI8.GetDIDevices(0, DIEDFL_ATTACHEDONLY)
  End If

  With lst_DID
    .Clear
    For i = 1 To DIED.GetCount
      .AddItem DIED.GetItem(i).GetProductName
    Next
    .ListIndex = 0
  End With

  Exit Sub
ErrOut:
  MsgBox "Zugriff auf DirectInput-Auflistung nicht möglich." & _
        vbCr & Err.Number & "/" & Err.Description, vbInformation
  End
End Sub

Private Sub lst_DID_Click()
  DisplayInfos lst_DID.ListIndex + 1
End Sub

Private Sub DisplayInfos(DeviceNummer As Single)
  On Error GoTo ErrOut

  txt_DeviceInfos.Text = _
        "ProductName  : " & _
            DIED.GetItem(DeviceNummer).GetProductName & vbCrLf & _
        "InstanceName : " & _
            DIED.GetItem(DeviceNummer).GetInstanceName & vbCrLf & _
        "GuidInstance : " & _
            DIED.GetItem(DeviceNummer).GetGuidInstance & vbCrLf & _
        "GuidProduct  : " & _
            DIED.GetItem(DeviceNummer).GetGuidProduct

  Exit Sub
ErrOut:
  MsgBox "Zugriff auf DirectInput-Device-Infos nicht möglich." & _
        vbCr & Err.Number & "/" & Err.Description, vbInformation
End Sub

Private Sub cmd_Close_Click()
  Set DIED = Nothing
  Set DI8 = Nothing
  Set DX8 = Nothing
  End
End Sub
 
Hinweis
Um dieses Beispiel ausführen zu können, wird die DirectX 8 for Visual Basic Type Library benötigt (siehe dazu die Erläuterungen in der DirectX-Rubrik).

Windows-Version
95
98
ME
NT
2000
XP
Vista
Win 7
VB-Version
VBA 5
VBA 6
VB 4/16
VB 4/32
VB 5
VB 6


Download  (3,7 kB) Downloads bisher: [ 285 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Montag, 29. August 2011