![]() |
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
|
|
|
|
|
|
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: [ 2396
]
|
|
|