Navigation: Home|Software|System-Tools|Winscript
Software
Anti-Spam
CD-Utilitys
Datei-Tools
Desktop
Email-Tools
Internet
Scanner
SMS-Tools
System-Tools
Telefonie
Zum Archiv
 
Hardware
Watch-My-PC
 
Ratgeber
Internet
Netzwerk
Zum Archiv
 
Shop
LAB1.de-CD
Registrierung
Updates
 
Information
Impressum
 

Neue Homepage, neue Adresse:

LAB1.de hat einen neuen Namen:

Tools&More

Unsere Tools werden jetzt unter der Adresse www.Tools-And-More.com weitergeführt - klicken Sie bitte den nachstehenden Taster, um dort die gesuchte Seite in neuester Version zu besuchen.
 


Windows automatisieren:

WinScript 2.7 für Win95/98/Me

Stapeldateien sind auch unter Windows 95/98/Me auf die triste DOS-Box beschränkt. Mit dem LAB1.de-Tool können Sie zumindest die Datenein- und ausgabe auf die glanzvolle Arbeitsoberfläche holen.

Mit Winscript können Sie aus hässlichen Stapeldateien (unten) eine chice Dialogbox mit entsprechendem Hinweistext (oben) und zum Beispiel den beiden Schaltfläche "Ja" und "Nein" machen


Download:

Den Download dieses Tools können Sie über unsere neue Homepage www.Tools-And-More.com starten.

Klicken Sie einfach den nachstehenden Taster, um dort hin zu gelangen:

 


Unbestritten leisten DOS-Stapeldateien
auch noch im totalen Windows-Zeitalter allerlei nützliche Dienste. Zudem können seit Windows 95/98 nun auch (offiziell) Windows-Applikation über Batches aufgerufen werden. Doch nach wie vor sind Stapeldateien allein auf die DOS-Box beschränkt – von, sagen wir, "Win-Batches" kann kein Rede sein. Das hat zur häßliche Folge, daß beim Aufruf einer Stapeldatei unter Windows 95/98 auch jeweils eine DOS-Box geöffnet wird – die dann wie ein schwarzes Loch aus der polierten Arbeitsoberfläche klafft. Zwar ließe sich zumindest das Erscheinungformat über die Eigenschaften der betreffenden Stapeldatei auf Symbolgröße einstellen. Doch erstens bekommt man dann nichts vom möglicherweise fehlerhaften Ablauf mit. Und auch eventuelle Ergebnisausgaben werden erst nach dem Vergrößern der DOS-Box sichtbar – ach ja, die DOS-Box am Ende zu schließen nicht vergessen! So gesehen bleibt bei soviel Ungemach vom Nutzen der Stapeldateien nicht viel übrig – und spaltet das Lager der Anwender in zwei Gruppen: Die einen werden kopfschüttelnd auf Batches verzichten. Die anderen dagegen die DOS-Box (inkl. Norton Commander) nicht mehr verlassen.

Das fehlende Glied
Doch das muß nicht sein. Man bekäme alle wieder unter einen Hut, wenn es gelänge, Anwendereingaben von der Windows-Arbeitsoberfläche an Stapeldateien zu leiten und eventuelle Fehler- und Ergebnismeldungen aus den Batches heraus an die Oberfläche zu bringen. Das ganze natürlich im adäquaten, zeitgemäßen Windows-Look, ohne jegliche (sichtbaren) schwarzen DOS-Boxen.

Gesagt – getan: Denn dies ist genau das, was das Tool Winscript macht. Angenommen, Sie setzen beispielsweise eine Stapeldatei zum Leeren des Dokumentenordners im Startmenü ein. Bevor das Batch loslegt, möchten Sie aber noch eine Sicherheitsabfrage einfügen. Mit den wenigen zur Verfügung stehenden Batchbefehlen könnte man diese Aufgabe mit dem Befehl choice erledigen – was mehr als mäßig aussieht. Mit Winscript dagegen können Sie ein chice Dialogbox mit einem entsprechenden Hinweistext und beispielsweise den beiden Schaltfläche "Ja" und "Nein" anzeigen lassen.

Das ist aber bei weitem noch nicht alles. Winscript verfügt in der aktuellen Fassung über folgende Windows-Elemente, die alle problemlos in Stapeldateien eingesetzt werden können:

MessageBox: Nachrichtenfenster mit frei festlegbaren Dialogtext, bis zu drei Schaltflächen und verschiedenen Icons
InputBox: Eingabefenster mit frei festlegbaren Dialogtext für die Eingabe einer Zeichenkette
ListBox: Listenauswahlfenster mit frei festlegbaren Dialogtext und Inhalt sowie Single- und Multiselect-Unterstützung
FileOpenBox: Standard-Dialog zum Öffnen einer Datei, natürlich mit Unterstützung langer Dateinamen und Netzlaufwerken
FileSaveBox: Standard-Dialog zum Sichern einer Datei, ebenfalls mit Unterstützung langer Dateinamen und Netzlaufwerken

(siehe auch Neue Kommandos seit Version 2.5)

So wird Winscript eingesetzt
Bei der Konzipierung von Winscript wurde im Auge behalten, daß dem Anwender mit der eigentlichen Batchsprache ein nur allzu begrenztes Sprachrepertoir zur Verfügung steht. Der Aufruf beispielsweise eines Nachrichtenfensters wie in Abbildung 1 gestaltet sich daher folgendermaßen:

WinScript MessageBox Beschreibung.dat

Durch WinScript wird das Brückenmodul gestartet, dem das Kommando MessageBox und der Name einer Beschreibungsdatei übergeben werden, hier beschreibung.dat. Mit MessageBox wird Winscript mitgeteilt, daß auf der Arbeitsoberfläche ein Nachrichtenfenster angezeigt werden soll. In der Beschreibungsdatei, die ein reines Text-File darstellt, ist das Aussehen dieses Fensters festgelegt. Dieser Weg wurde deshalb gewählt, da ein Befehl an der DOS-Eingabeaufforderung maximal 126 Zeichen lang sein darf. Da aber beispielsweise allein schon der Dialogtext für ein Fenster über 1000 Zeichen lang sein kann, fällt die direkte Angabe als Startparameter aus. Welche Daten in die Beschreibungsdatei eingetragen werden müssen, hängt vom betreffenden Befehl ab, also von der Art des gewünschten Dialogfensters. Schließlich hat ein Nachrichtenfenster andere Anforderungen als beispielsweise ein Dialog zum Sichern einer Datei. Für die Definition des Nachrichtenfensters aus Abbildung 1 müßten folgende Angaben in DOS-Einstellungen Beschreibungsdatei gemacht werden:

• 1. Zeile: Der Titelzeilentext
• 2. Zeile: Die Beschreibung des Icons und der Schaltflächen
• 3. und folgende Zeilen: Der Dialogtext

Die Beschreibungsdatei des gezeigten Beispiels sieht daher folgendermaßen aus:

Dokumenten-Ordner leeren
Frage JaNein Rechts
Soll der Ordner "Dokumente"
wirklich geleert werden?

Auf die Reihenfolge der Angaben ist unbedingt zu achten. Winscript ermittelt lediglich über die Zeilenposition, um welche Art von Angabe es sich handelt. So enthält beispielsweise die erste Zeile einer Beschreibungsdatei immer für den Titel eines Fenster. In der zweiten Zeile wird das Icon mit dem Fragezeichen angefordert, dazu zwei Schaltflächen mit den Aufschriften "Ja" und "Nein", wobei die rechte Taste "Nein" vorausgewählt sein soll. Die Aufteilung des Dialogtextes auf zwei Zeilen (3. und 4.) hat zur Folge, daß der Text im Fenster auch tatsächlich zweizeilig dargestellt wird und nicht als Zeichenspaghetti erscheint.

Zwecks Dokumentation können (und sollen) auch Kommentarzeilen in die Beschreibungsdatei eingefügt werden. Solche Zeilen müssen mit dem Kommando rem, einem Semikolon (;) oder einem einfachen Anführungszeichen (') beginnen. Kommentarzeilen werden bei der Zählung der Datenzeilen natürlich nicht berücksichtigt. Ein Kommentar in der ersten Zeile einer Beschreibungsdatei wird also nicht als Fenstertitel verwendet, sondern die Angaben in der nachfolgene Zeile – sofern diese nicht auch ein Kommentar ist. Nachfolgend die kommentierte Beschreibungsdatei des Beispiels:

' Dialog für die Doku-Löschabfrage
' Titel:
Dokumenten-Ordner leeren
' Icons & Taster:
Frage JaNein Rechts
' Dialogtext:
Soll der Ordner "Dokumente"
wirklich geleert werden?

Beschreibungsdateien können mit einem ganz normalen Editor wie Notepad oder Edit als vorgefertigte Textdateien erstellt werden. Kompakterweise kann man sie aber auch durch die ausführende Stapeldatei kurz vor ihrem Einsatz anlegen und gleich danach wieder löschen lassen:

rem Beschreibungsdatei INFO vorbereiten:
echo Dokumenten-Ordner leeren > INFO
echo Frage JaNein Rechts >> INFO
echo Soll der Ordner "Dokumente" >> INFO
echo wirklich geleert werden? >> INFO

So erhält man Antworten
Damit ist klar, wie man ein Dialogfenster definiert und anzeigen läßt. Aber wie werden die an der Oberfläche gemachten Angaben an die auführende Stapeldatei geleitet? Hierfür dient die Umgebungsvariable wsresult, in der die ensprechenden Daten stehen. Angenommen, der Anwender hätte im Beispiel die Schaltfläche "Ja" gedrückt, so würde die Umgebungsvariable wsresult die Zeichenkette "JA" enthalten – andernfalls "NEIN". Schaltflächenergebnisse in wsresult sind immer versal geschrieben, damit eine spätere Auswertung in der ausführenden Stapeldatei leichter fällt. Wie allgemein bekannt ist, wird der Inhalt einer Umgebungsvariable durch Einklammerung mit zwei Prozentzeichen (%) vorgenommen:

if %wsresult% == JA goto KillDocs

Wichtig: Bei manchen Dialogen, wie beispielsweise der einfachen Eingabebox (InputBox) ist es möglich keine Angaben zu machen oder einfach die Schaltfläche "Abbrechen" zu drücken. In diesem Fall würde die Umgebungsvariable wsresult keinen Inhalt haben. Das hat zur Folge, daß die oben gezeigt if-Abfrage zu einem Syntax-Fehler führt, da das erste Argument anscheinend nicht angegeben wurde. Um dies zu verhinden, muß ein oder mehrere zusätzliche Zeichen auf beiden Seiten des Vergleichs angegeben werden, um immer eine korrekte Auflösung des Ausdrucks zu gewährleisten:

if "%wsresult%" == "" goto KeineEingabe


Hier ein Beispiel für den kompletten Aufbau:

rem ##########################################
rem Batch zum Leeren des Doku-Ordners im Start-Verz.
rem ##########################################
rem
rem ### Beschreibung für Abfrage vorbereiten:
rem
echo Dokumenten-Ordner leeren > Beschreibung
echo Frage JaNein Rechts >> Beschreibung
echo Soll der Ordner "Dokumente" >> Beschreibung
echo wirklich geleert werden? >> Beschreibung
rem
rem ### Abfrage starten:
rem
winscript MessageBox Beschreibung
rem
rem ### Je nach Auswahl weitermachen
rem
if %wsresult% == NEIN goto PrgBeenden
rem
rem ### Ordnerinhalt löschen
rem
deltree /Y %windir%\recent\*.*
rem
rem ### Beschreibung für Info vorbereiten:
rem
echo Dokumenten-Ordner leeren > Beschreibung
echo OK Info >> Beschreibung
echo Der Ordner "Dokumente" wurde >> Beschreibung
echo vollständig gelöscht! >> Beschreibung
rem
rem Info starten:
rem
winscript MessageBox Beschreibung
rem
rem ### Aufräumen
rem
:PrgBeenden
del Beschreibung


Die übrigen Winscript-Befehle, wie beispielsweise der Datei-Dialog (Abbildung 2) oder die Winscript-Listbox (Abbildung 3), werden analog dem gezeigten Verfahren angewendet. Die genaue Bestückung der obligatorischen Beschreibungsdatei geht aus Tabelle 2 hervor. Vor allem die beiden Dateidialoge werden sicherlich viel Anwendung finden. Denn dadurch kann man in Zukunft bei Batchdateien vollkommen auf die Angabe von Dateinamen als Startparameter verzichten – das unkomfortable Zusammenhacken der Befehle an der DOS-Eingabeaufforderung hat damit endlich ein Ende.

Feintuning
Um den Winscript-Stapeldateien den letzten Schliff zu geben, sind in den Eigenschaften der betreffenden DOS-Batches noch ein paar Ergänzungen vorzunehmen. Über die Registerkarte Programm sollte man unbedingt ein anderes, sinnfälligeres Icon auswählen, als das dröge MS-DOS-Symbol. Außerdem muß die Option Beim Beenden schließen immer markiert sein, denn sonst muß man nach dem Ablauf der Stapeldatei die Arbeitsoberfläche von Hand aufräumen – sprich, die längst beendeten DOS-Boxen selber schließen. Zudem sollte das betreffende Batch der besseren Optik wegen immer als Symbol ausgeführt werden. Die Zuweisung einer Tastenkombination erleichtert schließlich den Start Ihres Winscript-Batches ungemein.

Neue Kommandos seit Version 2.5
In dieser Version kamen die beiden Kommandos CheckDrive sowie CheckLabel hinzu. Ersterer überprüft, ob sich ein bestimmtes Medium überhaupt ansprechen läßt. Fehler, die beispielsweise auf nicht eingelegte Datenträger oder nicht eingeschaltete Geräte zurückzuführen sind, können so von vornherein ausgeschlossen werden. Als Parameter ist (zumindest) der Laufwerkbuchstabe des zu prüfenden Drives anzugeben. Das Ergebnis erhält man wie üblich in der Umgebungsvariable wsresult - sie enthält entweder OK, falls man problemlos auf den Datenträger zugreifen kann, bzw. ERROR, falls nicht.


Seit Version 2.5 bietet WinScript die zwei neuen Funktionen CheckDrive und CheckLabel für die sichere Ausführung von Datenträgerzugriffen über Stapeldateien.

Das ganze könnte etwa wie folgt realisiert werden:

:test1
winscript checkdrive a
if "%wsresult%" == "OK" goto ok1
winscript messagebox fehlerinfo1.dat
if "%wsresult%" == "OK" goto test1
goto abbruch
:ok1

Damit ist zunächst hardwareseitig sichergestellt, dass das betreffende Batch korrekt abläuft. Mit der Funktion CheckLabel kann man anhand des Datenträgernamens nun noch überprüfen lassen, ob es sich bei dem eingelegten Medium um das richtige handelt. Bei dem Aufruf ist neben der betreffenden Laufwerkskennung auch der erwartete Datenträgernamen anzugeben. Stimmt der Name des überprüften Mediums, so liefert die Umgebungsvariable result den Wert OK - falls nicht ERROR. Auch hierzu ein Beispiel:

:test2
winscript checklabel a mein_backup
if "%wsresult%" == "OK" goto ok2
winscript messagebox fehlerinfo2.dat
if "%wsresult%" == "OK" goto test2
goto abbruch
:ok2

Schließlich wurde dem Utility auch noch eine komplette Online-Hilfe verpaßt, die man über den Aufruf WinScript Help erhält.

Neue Kommandos seit Version 2.7
Über das Kommando QueryFolderBox können Sie jetzt auch über WinScript einen Verzeichnispfad ganz einfach per Dialog eingeben lassen. Der Aufruf baut sich wie folgt auf:

echo Wo soll die Datei XY
echo gespeichert werden?
winscript queryfolderbox parameter
copy XY  %wsresult%

Auf dem Desktop stellt sich das Ganze dann so dar:


Tabelle 1a:
Die Winscript-Kommandos im Überblick (Teil 1)

Befehl MessageBox InputBox ListBox
Zweck Nachrichten-fenster mit frei festlegbaren Dialogtext, bis zu drei Schaltflächen und verschiedenen Icons Eingabe-fenster mit frei festlegbaren Dialogtext für die Eingabe einer (vorbestimm- baren) Zeichenkette Listenauswahl- fenster mit frei festlegbaren Dialogtext und Inhalt
Beschreibungs-
datei:
Zeile 1
Fenstertitel Fenstertitel Fenstertitel
Zeile 2 Icon, Taster und Vorauswahl (siehe Tabellen 2 bis 4) Vorausgewählter Text, der in der Eingabezeile erscheinen soll Name der Textdatei, die den Listeninhalt enthält
Zeile 3 Ab hier sind alle folgenden Zeilen Dialogtext Ab hier sind alle folgenden Zeilen Dialogtext Auswahl: SINGLESELECT erlaubt nur die Auswahl eines einzigen Listeneintrags, MULTISELECT dagegen mehrere
Zeile 4 - - STRING bzw. NUMERIC: Damit werden Listenmarkierungen entweder als Zeichen- ketten oder num. Aufzählungen in der Ergebnisvariablen WSRESULT abgelegt. Wird bsw. der 1., 5. und der 33, Eintrag gewählt, so enthält WSRESULT durch NUMERIC die Zeichenkette "1 5 33" (ohne Anführungszeichen).
Zum Aufsplitten eines MULTISELECT- Ergebnisses über Batchbefehle bietet sich das Kommando FOR an.
Zeile 5 - - Ab hier sind alle folgenden Zeilen Dialogtext
Ergebnisse in %wsresult% Wert richtet sich nach dem Beschriftung der zuvor gedrückten Schaltfläche. War es beispielsweise "OK", enthält die Variable die Zeichenkette OK (siehe Tabellen 2 bis 4) Variable erhält den Inhalt des Eingabefeldes. Wurde abgebrochen, so ist die Variable leer. Variable erhält den ausgewählten Listeneintrag. Sind es mehrere, so werden sie durch Leerzeichen voneinander getrennt. Wurde abgebrochen, so ist die Variable leer.

Tabelle 1b:
Die Winscript-Kommandos im Überblick (Teil 2)

Befehl FileOpenBox FileSaveBox Play
Zweck Standard-Dialog zum Öffnen einer Datei Standard-Dialog zum Sichern einer Datei Modul zum Abspielen von WAV-Dateien
Beschreibungs-
datei:
Zeile 1
Fenstertitel Fenstertitel Name der abzuspielenden Datei
Zeile 2 Vorgegebener Name für die zu öffnende Datei Vorgegebener Name für die zu sichernde Datei Warteverhalten: WAIT wartet, bis die Datei abgespielt wurde, CONTINUE kehrt sofort zum Batch zurück
Zeile 3 Der vorgegebene Name des Verzeichnisses, das der Dialog öffnen soll Der vorgegebene Name des Verzeichnisses, das der Dialog öffnen soll -
Zeile 4 Dateifilter für den Dialog, Beispiel: Text (*.txt) | *.txt | Bilder (*.bmp; *.ico) | *.bmp; *.ico Dateifilter für den Dialog, Beispiel: Text (*.txt) | *.txt | Bilder (*.bmp; *.ico) | *.bmp; *.ico -
Ergebnisse in %wsresult% Variable erhält den ausgewählten Dateinamen. Wurde abgebrochen, so ist die Variable leer. Variable erhält den ausgewählten Dateinamen. Wurde abgebrochen, so ist die Variable leer. Variable wird nicht verändert.

Tabelle 1c:
Die Winscript-Kommandos im Überblick (Teil 3)

Befehl QueryFolderBox (leer) (leer)
Zweck Dialog zur Eingabe eines Pfades über einen Verzeichnisbaum
Beschreibungs-
datei:
Zeile 1
Ab hier sind alle folgenden Zeilen Dialogtext
Zeile 2 -
Zeile 3 -
Zeile 4 -
Ergebnisse in %wsresult% Variable erhält den ausgewählten Pfad. Wurde abgebrochen, so ist die Variable leer.

Tabelle 2:
Die Bezeichnungen für die Definition der darzustellenden Schaltfläche(n) beim Winscript-Befehl MessageBox

MessageBox
Schaltflächen-
bezeichnungen
Abkürzung
der Bezeich-
nungen
Anzahl der gezeigten Taster Aufschrift der Schaltflächen
(entsprechen auch den Ergebnissen in %wsresult% falls gedrückt, aber in versaler Schreibweise)
(keine) (keine) 1 OK
Ok (keine) 1 OK
OkAbbrechen OA 2 OK, Abbrechen
WiederholenAbbrechen WA 2 Wiederholen, Abbrechen
JaNein JN 2 Ja, Nein
JaNeinAbbrechen JNA 3 Ja, Nein, Abbrechen
Abbrechen-
Wiederholen-
Ignorieren
AWI 3 Abbrechen, Wiederholen, Ignorieren

Tabelle 3:
Die Bezeichnungen für die Festlegung des darzustellenden Icons beim Winscript-Befehl MessageBox

MessageBox-
Icon-Bezeichnungen
Dargestelltes Icon
(keine) (keine)
Frage Weisse Sprechblase mit blauem "?"
Info Weisse Sprechblase mit blauem "i"
Stop Weisses "X" auf rotem Kreis
Warnung Schwarzes "!" auf gelbem Dreieck

Tabelle 4:
Mit diesen Kennungen legt man beim Winscript-Befehl MessageBox die Tastenvorauswahl fest

MessageBox-Vorauswahl-Bezeichnungen Voreingestellte Taste
(keine) Links
Links Links
Mitte Mitte
Rechts Rechts





DruckversionZur Druckversion
dieser Seite


 

 © LAB1.de 2017
Alle Rechte vorbehalten.
Vervielfältigung nur mit Genehmigung von LAB1.de

 
..