Tipp 0270 Bildschirmschoner mit DirectX 7
Autor/Einsender:
Datum:
  Alexander Csadek
01.04.2002
Entwicklungsumgebung:
DirectX-Version:
  VB 6
DirectX 7
Einen Bildschirmschoner mit DirectX zu erstellen ist nicht schwer. Es genügt schon, wenn man nur eine Instanz des Programms zulässt, die Tastatur- und Mausereignisse abfängt und den Bildschirmschoner beendet. Dann braucht man nur noch den Bildschirmschoner mit der Endung ".scr" zu kompilieren, fertig.
Mit wenigen Handgriffen kann der Bildschirmschoner auch um ein Optionen-Fenster und einer Vorschau erweitert werden. In der Systemsteuerung/Anzeige/Bildschirmschoner gibt es einen Button "Einstellungen". Klickt man auf diesen, so startet das Windows den Bildschirmschoner mit dem Befehlsargument "/c". Nun kann in der Hauptroutine vom Bildschirmschoner darauf reagiert werden und anstatt dem eigentlichen Bildschirmschoner wird das Optionen-Fenster für die diversen Einstellungen des Bildschirmschoners angezeigt.
Im gleichen Windows-Dialog (Systemsteuerung/Anzeige/Bildschirmschoner) kann eine Vorschau des Bildschirmschoners angezeigt werden. Windows startet hierfür den Bildschirmschoner mit dem Befehlsargument "/p" und schickt auch gleich den Handle für das Vorschau-Rechteck mit. Das Fenster vom Bildschirmschoner wird dann dem Rechteck als "Child" zugewiesen.
Im wesentlichen ist der Code identisch mit dem Tipp 0269 - Bildschirmschoner (ohne DirectX), nur die Grafik-Ausgabe des Bildschirmschoners wird über DirectX gemacht.
Aufgrund des Code-Umfangs wurde hier nur der Teil des Codes abgebildet, der für die Grafik-Ausgabe des Bildschirmschoners über DirectX relevant ist.
 
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
Bildschirmschoner de-/aktivieren
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  (147 kB) Downloads bisher: [ 2406 ]

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: Samstag, 3. September 2011