Buchempfehlung
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
"Der" Petzold, das über 1000 Seiten starke Standardwerk zum Win32-API - besonders nützlich u. a. bei der GUI-Programmierung in FreeBASIC! [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Tutorial

Bildschirmschoner programmieren

von RedakteurMaoSeite 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".

 

Gehe zu Seite Gehe zu Seite  1  2  3  4  
Zusätzliche Informationen und Funktionen
  • Das Tutorial wurde am 09.06.2007 von RedakteurMao angelegt.
  • Die aktuellste Version wurde am 10.09.2009 von AdministratorSebastian gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen