Tutorial
Bildschirmschoner programmieren
von Mao | Seite 3 von 4 |
Ein bisschen Leben...
...will auch der Bildschirmschoner besitzen, also auf, an die Arbeit! :)
Der Konfigurationsdialog
Im Konfigurationsdialog werden (achja ;) die Einstellungen für den Bildschirmschoner festgelegt. Dabei entscheidet natürlich jeder Programmierer selbst, was in seinem alles so einstellbar sein soll - auch das Aussehen des Dialogs bestimmt er. Das kann ein ganz einfacher Textbildschirm in einem Konsolenfenster sein; genauso, wie ein mit OpenGL gerenderter 3D-Dialog mit kämpfenden Objekten im Hintergrund. In unserem Beispiel werden wir uns mit einer einfachen Messagebox begnügen; es geht hier schließlich nur um die Demonstration des Grundgerüsts. Auch unser Bildschirmschoner selbst wird sehr primitiv sein - er wird einfach die Zeit ausgeben, an verschiedenen Stellen auf dem Bildschirm. Demzufolge brauchen wir eigentlich auch keinen Konfigurationsdialog - wir werden nur freundlichst darauf hinweisen, dass es nichts zu konfigurieren gibt. :)
Sub ConfigureScreensaver
MessageBox(0, "Es gibt nichts zu konfigurieren! ;)", "Der Bildschirmschoner", MB_ICONINFORMATION)
End Sub
MessageBox ist eine Funktion der WinAPI, die Verwendung und andere Funktionen der WinAPI sind wie gesagt nicht Gegenstand dieses Tutorials. ;)
Sub ShowScreensaver
Dim As Integer XPos, YPos
' 640x480 Pixel, Vollbild, kein weiterer Moduswechsel
Screen 12,,, &H01 Or &H04
' Zufallsgenerator initialisieren
Randomize Timer
Do
' Eine zufällige Position für die Zeit finden
XPos=Int(Rnd*80-8)+1 ' 80 Zeichen horizontal, minus 8 Zeichen für Zeit
YPos=Int(Rnd*30)+1 ' 30 Zeilen
Locate YPos, XPos
Print Time
' Wurde eine Taste gedrückt
If Inkey<>"" Then
End
End If
' Zur Senkung der Prozessorlast immer ein bisschen warten
Sleep 10
Loop
End Sub
Das war's! Du hast soeben deinen ersten Bildschirmschoner geschrieben! :)
Okay, weder von der Grafik her aufwändig, noch irgendwelche Dinge, die noch nie da gewesen sind. ;)
(Meiner Meinung nach hat er trotzdem einen gewissen Charme. ^^)
Aber das Beispiel zeigt sehr gut, dass ein Bildschirmschoner eigentlich eine leichte Aufgabe ist - mal abgesehen, von den grafischen Ansprüchen, die die meisten User an einen schönen Bildschirmschoner stellen.
Hier also noch einmal unser Beispiel komplett:
#include "windows.bi"
Declare Sub ConfigureScreensaver
Declare Sub ShowScreensaver
Dim As String Param
' Kein Parameter?
If Command(1)="" Then
End
End If
' Gewünschtes Kommando isolieren
Param=Mid(Command(1), 2, 1)
Select Case Param
Case "s"
ShowScreensaver
Case "c"
ConfigureScreensaver
Case Else
End
End Select
Sub ConfigureScreensaver
MessageBox(0, "Es gibt nichts zu konfigurieren! ;)", "Der Bildschirmschoner", MB_ICONINFORMATION)
End Sub
Sub ShowScreensaver
Dim As Integer XPos, YPos
' 640x480 Pixel, Vollbild, kein weiterer Moduswechsel
Screen 12,,, &H01 Or &H04
' Zufallsgenerator initialisieren
Randomize Timer
Do
' Eine zufällige Position für die Zeit finden
XPos=Int(Rnd*80-8)+1 ' 80 Zeichen horizontal, minus 8 Zeichen für Zeit
YPos=Int(Rnd*30)+1 ' 30 Zeilen
Locate YPos, XPos
Print Time
' Wurde eine Taste gedrückt?
If Inkey<>"" Then
End
End If
' Zur Senkung der Prozessorlast immer ein bisschen warten
Sleep 10
Loop
End Sub
Compilieren
Compilieren kannst du den Bildschirmschoner (fast) wie gewohnt:
fbc screensaver.bas -x screensaver.scr -s gui
Das -x sagt dem Compiler, wie die Datei heißen soll - Bildschirmschoner haben schließlich die Dateiendung scr. ;)
Den fertigen Screensaver kopierst du einfach nach %WINDIR%\system32. Und schon kannst du ihn in der Auswahlliste auswählen. Toll, nicht? ^^
Was %WINDIR% ist? Das ist eine Variable/Konstante (wie du's nun nehmen willst ;), die deinen Windows-Installations-Ordner angibt. Zum Beispiel "C:\Windows".
Zusätzliche Informationen und Funktionen | |||||||
---|---|---|---|---|---|---|---|
|