Tipp 0217 Grafikkarten-Informationen auslesen
Autor/Einsender:
Datum:
  Alexander Csadek
01.04.2002
Entwicklungsumgebung:
DirectX-Version:
  VB 6
DirectX 7
Es kommt sicher nicht sehr häufig vor, dass in einem PC mehr als eine Grafikkarte ist. Aber dennoch ist es mit DirectX möglich, die Anzahl und Informationen aller installierten Grafikkarten auszulesen. Dies geschieht mittels der DirectDraw-Enummerierung.
Die Funktion GetDDEnum liefert eine Auflistung aller installierten Grafikkarten inkl. derer mit DualHead. In der Regel gibt es aber nur eine, die als "Primärer Anzeigentreiber" bezeichnet wird, und DirectDraw wird dann ohne Angabe der GUID gemacht.
DirectX7.DirectDrawCreate("")
Soll die Ausgabe aber auf einer anderen Grafikkarte als der primären geschehen, so muss statt des leerem Strings lediglich die GUID aus der Auflistung übergeben werden, z.B.:
DirectX7.DirectDrawCreate(objDDE.GetGuid(3))
Wurde DirectDraw initialisiert, stehen weitere Informationen über die Grafikkarte zur Verfügung. Mit dem DirectDrawIdentifier-Objekt und der DD-Funktion GetDeviceIdentifier(DDGDI_DEFAULT) sind Informationen z.B. über den verwendeten Treiber verfügbar.
 
Option Explicit

Dim objDX7 As New DirectX7
Dim objDD7 As DirectDraw7
Dim objDDE As DirectDrawEnum
Dim objDDI As DirectDrawIdentifier

Private Sub Form_Load()
  Dim i As Single

  On Error GoTo ERROUT

  Set objDDE = objDX7.GetDDEnum
  lbl_CountDC.Caption = "Anzahl Anzeigetreiber: " & objDDE.GetCount

  lst_DC.Clear
  
  For i = 1 To objDDE.GetCount
    lst_DC.AddItem objDDE.GetDescription(i) & _
          " - " & objDDE.GetName(i) & " - " & _
          objDDE.GetGuid(i) & " - MonitorHandle:" & _
          objDDE.GetMonitorHandle(i)
  Next i

  lst_DC.ListIndex = 0
  GetDDIdentifier
  Exit Sub

ERROUT:
  MsgBox "Fehler beim Einlesen der Anzeigentreiber.", vbExclamation
  End
End Sub

Private Sub GetDDIdentifier()
  On Error GoTo ERROUT

  Set objDDI = Nothing
  Set objDD7 = Nothing

  Set objDD7 = _
      objDX7.DirectDrawCreate(objDDE.GetGuid(lst_DC.ListIndex + 1))
  Set objDDI = objDD7.GetDeviceIdentifier(DDGDI_DEFAULT)

  lbl_Description.Caption = "Bezeichnung: " & objDDI.GetDescription
  lbl_DCID.Caption = "Device-ID: " & objDDI.GetDeviceId
  lbl_DCIdentifier.Caption = "Device-Indentifier: " & _
      objDDI.GetDeviceIndentifier
  lbl_Driver.Caption = "Treiber: " & objDDI.GetDriver

  Exit Sub

ERROUT:
  MsgBox "Fehler beim Einlesen der GrafikkartenInfos.", _
    vbExclamation
  End
End Sub
 
Weitere Links zum Thema
Soundkarten-Informationen auslesen
Hinweis
Um dieses Beispiel ausführen zu können, wird die DirectX 7 for Visual Basic Type Library benötigt (siehe dazu die Erläuterungen in der DirectX-Rubrik).

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


Download  (2,7 kB) Downloads bisher: [ 1268 ]

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: Dienstag, 16. August 2011