Tutorial
Bildschirmschoner programmieren
von Mao | Seite 2 von 4 |
Parameter auswerten
Werden einem Programm beim Aufruf Parameter übergeben, so trennt das Betriebssystem diese vom eigentlichen Programmnamen ab und schreibt sie in einen extra für das Programm reservierten Speicherbereich. FB erleichtert uns das Ganze nocheinmal: Alle übergebenen Parameter werden in einem Array, Command, getrennt gespeichert. So wird zum Beispiel aus dem Aufruf "programm.exe -param1 -param2" das Array Command mit folgendem Inhalt:
Index | Inhalt |
0 | programm.exe |
1 | -param1 |
2 | -param2 |
Um das jetzt wieder auf unseren Bildschirmschoner zu beziehen: Es muss nicht sein, dass Windows den Slash ( / ) verwendet, um Parameter anzuhängen. Es ist auch möglich, dass ein Bindestrich ( - ) verwendet wird. Zudem ist auch die Groß-/Kleinschreibung nicht fest definiert. (Hier helfen uns die Funktionen, die im Tutorial Stringmanipulation behandelt werden.)
Was machen wir also? Zuerst überprüfen wir, ob überhaupt ein Parameter angegeben wurde. Wenn nicht, beendet sich der (spätere) Bildschirmschoner / das (jetzige) Programm einfach.
If Command(1)="" Then
End
End If
Wenn ein Parameter angegeben wurde, lösen wir uns das 2. Zeichen heraus (Merke: Das 1. Zeichen war entweder ein Slash oder ein Bindestrich.):
Param=Mid(Command(1), 2, 1)
Schlussendlich konvertieren wir ihn einfach in einen Kleinbuchstaben:
Param=LCase(Param)
Und jetzt können wir mittels Select-Case ganz einfach entscheiden, was bei welchem Parameter ausgeführt wird:
Select Case Param
Case "s"
ShowScreensaver
Case "c"
ConfigureScreensaver
Case Else
End
End Select
Klar ersichtlich: Mit "s" wird der Bildschirmschoner aufgerufen, mit "c" der Konfigurationsdialog. Was dir vielleicht aufgefallen ist, ist dass "p" für die Vorschau weggelassen wurde. Wie schon auf der letzten Seite erwähnt wird dies hier außer Acht gelassen, da wir hierzu auf die WinAPI und die Funktionen der GDI zugreifen müssen. (Und dies wäre der Stoff eines anderen Tutorials. ;)
Allgemein ist es ja ziemlich unschön, wenn sich ein Programm einfach so bei einer Falscheingabe oder aus sonstigen Gründen beendet. Bei einem Bildschirmschoner wäre es doch aber eher lästig, wenn eine Fehlermeldung "Falscher/kein Parameter!" angezeigt werden würde, wenn man versucht, ihn ohne Parameter (einfach so aus dem Explorer) mit Mausklick zu starten. ;)
Komplett lautet der Sourcecode unseres Grundgerüsts bisher also:
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
Zusätzliche Informationen und Funktionen | |||||||
---|---|---|---|---|---|---|---|
|