Home

RapidBATCH 5 Benutzerhandbuch

image

Contents

1. Der RapidBATCH Script Compiler zum berf hren einer RB Scriptdatei in ein lauff higes EXE Programm hallo1 exe hallot rb Nach der Compilierung findet sich neben der RB Datei auch eine ausf hrbare EXE Datei unter selbem Namen Nachdem Sie nun das Script ausgef hrt und compiliert haben kommen wir zu Erkl rung des obigen Beispiels Die An weisung ECHO gibt wie Sie sicherlich schon vermutet haben das Meldungsfenster aus Als Parameter erwartet diese Anweisung einen Wert n mlich den Meldungstext der in dem Meldungsfenster angezeigt werden soll also Hallo ich bin ein RapidBATCH Script Bei einigen Anweisungen muss der Parameter nicht unbedingt zwischen zwei Hochkom mata wie es hier der Fall ist eingeschlossen werden dies ist jedoch ein reiner Sonderfall der nur bei Anweisungen oder Funktionen mit einem Parameter erlaubt ist Im Allgemeinen sollten Sie Werte aber m glichst immer in Hochkom mata schreiben da die klassische Schreibweise Werte ohne Hochkommata anzugeben nicht mehr dem modernem RapidBATCH Sprachstandard entspricht Die END Anweisung welche der ECHO Anweisung in einer neuen Zeile folgt markiert das Ende des Scripts Sie muss zwar nicht zwingend angegebene werden geh rt aber zur sauberen Programmierung in RapidBATCH einfach dazu Ob Sie die Befehle gross oder klein schreiben ist v llig egal RapidBATCH macht keine Unterschiede zwischen ECHO eChO und Echo Es ist also Ihnen b
2. Hier folgt der ausf hrbare Code return 0 Die Parameter die einer externen Funktion bergeben werden werden wiefolgt gehandhabt e char output e Hierbei handelt es sich um einen Pointer der entsprechend mit Speicher allokiert werden mu wenn die Funk tion einen Wert an die beim Aufruf von EXT bergebene R ckagbevariable zur ckgeben soll Dieser Speicher sollte mit der Windows API Funktion LocalAlloc und dem Parameter LPTR allokiert werden Wird output auf char NULL gesetzt bzw belassen gibt EXT einen Leerstring zur ck Die Schnittstelle gibt den mit LocalAlloc allokierten Wert automatisch wieder frei char input Bei diesem Pointer handelt es sich um ein Array von Char Pointern in der jeder Eintrag einem Parameterwert entspricht der beim Aufruf von EXT im RapidBATCH Script bergeben wurde e intinput_count e Enth lt die Anzahl der Eintr ge im Array inputf Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 81 von 138 Sprachreferenz Beispiele rem Funktionen der DLL Biblothek C Code rem rem define BUFFSIZE 10000 rem define TEXTSIZE 100 rem define ERROR_BAD_INPUT 11 rem rem charr gsSeparator char NULL rem char qasBuffer char NULL rem rem BOOL CALLBACK EnumWindowsProc HWND hwnd LPARAM lParam rem rem char IEle TEXTSIZE rem memset Title 0 TEXTSIZE rem rem GetWindowText hwnd de lep el
3. Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 124 von 138 hp 1 Sprachreferenz IMAGE Pfad der Bitmap Datei eines Bild anzeigenden Widgets IMAGEBUTTON IMAGE EEE GE R ckgabewert Relativer oder absoluter Pfad der BMP Datei IMAGE_TRANSP Pfad der transparenten Bitmap Datei eines Bild anzeigenden Widgets ARENT IMAGEBUITON IMAGE EEE HE R ckgabewert Relativer oder absoluter Pfad der BMP Datei ITEMS Liste an Werten in Listenauswahlfeldern Widgets LIST LIST_SORTED LIST_MULTI LIST_MULTISORTED COMBO STATIC_COMBO R ckgabewert Liste an Elementen in der jedes Element durch das Standard Separationszeichen standardm Big Pipe separiert ist Beispiel Item 1 Item 2 Item 3 MENU Ermittelt den Men descriptor eines Dialogfensters DIALOG En R ckgabewert Menu Descriptor wie er bergeben wurde oder Leerstring wenn dem Dialogfenster kein Men zugeweisen wurde ORDER Dialog Anordnung Z Order DIALOG BE ll oo R ckgabewert Der aktuelle Anordnungsmodus des Dialogfensters auf der Z Achse M gliche Werte sind BOT TOM TOP oder ein Leerstring der f r den Modus NORMAL steht Die Position eines Widgets Bei Basisdialogen sind die entsprechenden X Y Koordinaten relativ zur linken oberen Ecke des Bildschirms bei Child Widgets relativ zur linken oberen Ecke des Dialogfensters zu dem das Child Widget jeweis geh rt Widgets DIALOG BUTTON IMAGEBUT
4. switch fdwReason case DLL_PROCESS_ATTACH Dieser Teil wird ausgef hrt wenn die DLL geladen wird Hier k nnen allgemeine Initialisierungsroutinen aufgerufen werden In diesem Beispiel wird eine MessageBox angezeigt damit das Laden der DLL verfolgt werden kann A MessageBox NULL DemoDLL dll wurde geladen RB5 DemoDLL MB_ICONINFORMATION break case DLL_PROCESS_DETACH Dieser Teil wird ausgef hrt wenn die DLL entladen wird Hier wird wieder aufger umt wenn das n tig sein sollte In diesem Beispiel wird ebenfalls eine MessageBox angezeigt zj MessageBox NULL DemoDLL dll wird entladen RB5S DemoDLL MB_ICONINFORMATION break return TRUE Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 64 von 138 5 Benutzerhandbuch Hier die erste Funktion rbxGetTickCount rbxGetTickCount ruft einfach die Windowsfunktion GetTickCount auf Diese liefert die Anzahl Millisekunden seit dem Start von Windows Damit kann sehr einfach die Dauer eines Vorgangs gemessen werden EInfach vorher und nachher rbxGetTickCount aufrufen und die Differenz bilden ACHTUNG GetTickCount liefert einen 32Bit Wert Das reicht f r ca 49 7 Tage Dann l uft der Z hler einfach ber Daher sollte in einer echten Anwendung berpr ft werden ob der zweite Werte kleiner als der erste ist um darauf zu reagieren
5. zeichen getasc ascii B echo Das Zeichen B hat den ASCII Code ascii end Bemerkungen keine GETLEN Syntax GETLEN L nge Ausdruck Beschreibung Gibt die Anzahl der Zeichen L nge des bergebenen Stringausdrucks zur ck Beispiele getlen len Hello World cho Der Text Hello World ist len Zeichen lang end Bemerkungen keine GETPOS Syntax GETPOS Position Stringausdruck Suchstring Anzahl Beschreibung Sucht den angegebenen Suchstring im Stringausdruck und gibt dessen Position im String zur ck Mit Hilfe des Anzahl Parameters kann auch nach dem zweiten dritten usw Aufkommen des Suchstrings im Stringaus druck gesucht werden Wird der Suchstring nicht an der angegebenen Position mit der gegebenen Anzahl gefunden ist der R ckgabewert 0 Beispiele getpos ipgosl Hells world Lon E echo Positron Tst H pos getpos posi HENG Nonlar an ECHO POSTE TONISEE ARE pPOSI end Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 84 von 138 k5 Sprachreferenz Bemerkungen Hat die Variable case_sensitivity den Wert 1 so ber cksichtigt GETPOS auch Stringmuster die sich von der Gro Kleinschreibung her von der Schreibweise des gegebenen Suchstrings unterscheiden D h wenn der Suchstring z B in Kleinschreibweise vorliegt und case_sensitivity den Wert 1 false hat so wird auch ein in Gro buchst
6. Alle Funktionen die von RB aus aufgerufen werden sollen m ssen wie hier angegeben deklariert werden bei anderen Compilern sieht die Syntax evtl anders aus Wichtig sind aber immer _cdecl und die Typen der Parameter Output einh lt einen Zeiger auf eine Variabl die dann einen Zeiger auf ine Zeichenkett nth lt Input enth lt einen Zeiger auf ein Feld von Zeigern auf Zeichenketten die in RB bergebenen Parameter InputCount enth lt die Anzahl der bergebenen Parameter die Anzahl der Elemente im Feld Input In dieser Funktion werden die bergebenen Parameter einfach ignoriert aA int __declspec dllexport _cdecl rbxGetTickCount char Output char Input int In putCount Zuerst pr fen ob Output auf etwas zeigt Wenn nicht dann hier abbrechen Der Wert 1 steht f r einen RapidBATCH Fehler dies kommt normalerweise nicht vor Es wird aber f r alle F lle gepr ft um auf der sicheren Seite zu sein if Output NULL return 1 Einen Speicherbereich von Windows anfordern LPTR bedeutet dass der Speicherbereich ber die zur ckgegebene Adresse ansprechbar ist und mit Nullen gef llt werden soll Die zweite Angabe gibt die gew nschte L nge in Bytes Zeichen an Wichtig Es muss immer mindestens ein Byte mehr angefordert werden als maximal Zeichen benutzt werden da am Ende immer noch ein Null
7. ealrale VEaN Las eE ee rem C jmksf rb5 readme txt in C test txt umbenennen renamefile C jmksf rb5 readme txt C test txt rem Ce TEST TXT ffnen open C test txt rem C test txt wieder zur ck in C jmksf rb5 readme txt benennen renamefile C test txt C jmksf rb5 readme txt COPYFILE und RENAMEFILE erlauben keine Wildcards d h es kann immer nur eine einzelne Datei kopiert werden Wie man aber trotzdem mehrere Dateien kopieren verschieben kann besprechen wir weiter unten Ob eine Datei bereits existiert oder nicht l sst sich mit der Funktion FILEEXISTS berpr fen fileexists fx C AnyFile txt if EXI 1 echo Datei existiert nicht else Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 38 von 138 h Benutzerhandbuch echo Datei existiert endif FILEEXISTS gibt also den Wert 1 an die R ckgabevariable zur ck wenn die Datei nicht existiert Ansonsten ist der R ckgabewert 0 Zu den leistungsst rksten und effektivsten Funktionen die RapidBATCH bereitstellt geh rt die FINDFILES Funktion FINDFILES listet alle Dateien eines Verzeichnisses erm glicht aber auch das Einlesen eines Verzeichnisses mitsamt aller Unterverzeichnisse Folgendes Script erzeugt eine Liste aller Dateien des aktuellen Verzeichnisses und zeigt diese in einem LISTBOX Dialog an rem Dateiliste erzeugen findfiles dateiliste 1 rem A
8. riched20 dil Pr E unins000 dat lt WB unins000 exe Arbeitsplatz Eigene Dateien Dateiname license tzt Netzwerkumgeb Dateityp Alle Dateien Abbrechen Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 95 von 138 k5 Sprachreferenz Beispiele openbox dateiname Bitte Datei w hlen Alle Dateien if dateiname cho Der gew hlte Dateiname lautet dateiname else echo Keine Datei ausgew hlt endif Bemerkungen Wenn Sie die vordeklarierte Variable OpenBox_MultiSel bei OPENBOX bzw SaveBox_MultiSel bei SAVEBOX auf den Wert 0 setzen k nnen in dem jeweiligen Dialog mehrere Dateien ausgew hlt werden Ist dies der Fall ist der R ck gabewert eine Liste beginnend mit dem Pfadnamen und den einzelnen Dateien jeweils durch Pipe Zeichen getrennt Das Pipe Zeichen ist der Standard Separator zum Trennen von Listenelementen in einem String Dieser kann ber die Variable std_sep ge ndert werden was dann f r alle Listen die von RapidBATCH verarbeitet werden gilt INFOBOX Syntax INFOBOX Meldung Anzeigemodus Beschreibung INFOBOX zeigt eine Meldung auf dem Bildschirm an Dieser Dialog stellt ein titelloses Fenster bereit welches als Status Anzeige oder hnliches benutzt werden kann Bei spielsweise kann solch ein Fenster mit dem Text Bitte warten eingeblendet werden bis verschiedene Operationen
9. 110 30 150 25 letdialog umrechner konvert font Sans Serif 10 2 rem Fenster sichtbar machen letdialog umrechner visible true rem Warten auf Ereignis ohne Ereignisbehandlung rundialog null 0 end Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 57 von 138 MR h Benutzerhandbuch Bin Okt Hex Umrechner 4 m Modus Dezimalwert Bin rwert Der bereits lauff hige Prototyp unseres Bin Okt Hex Umrechners Wir werden nun Schritt f r Schritt die einzelnen Abschnitte in die der Prototyp eingeteilt ist durchgehen Zuerst wird das Dialog Basisfenster erzeugt mit eine Gr e von 270x100 Pixel In den darauf folgenden LETDIALOG Anweisungen wird zuerst der Fenstertitel und anschlie end ein so genannter Style in unserem Fall der Style SINGLE f r das Fenster gesetzt Dieser Style ndert das Aussehen des Fensters so dass kein Maximieren Button mehr in der rechten oberen Ecke gegeben ist da eine Maximierung des Fensters bei diesem kleinen Programm keinen Sinn ergibt Andere Stylewerte k nnen Sie der RapidBATCH Sprachreferenz entnehmen Nachdem das Fensterstyle gesetzt wurde weisen wir dem Fenster noch ein Men zu Dieses Men wird als so genann ter Menu Descriptor bergeben Dieser Descriptor definiert das Men in einer einfachen Definitionssprache In unse rem Fall wird ein Hauptmen Modus mit drei Untermen punkten Dezimal gt
10. Bin rwert bearbeiten Name binary_Helloworld wert 0000 48 65 6C 6C 6F 20 57 6F Hello Wo 0008 72 6C 64 rld Ein deutlich erkennbares Hello World wurde bin r in die Registry geschrieben Soll ein DWORD Wert in die Registry geschrieben werden k nnen nur numerische 32 Bit Ganzzahlwerte in die Registry geschrieben werden Das Auslesen von Registry Werten erfolgt auch hier wieder quivalent ber eine Funktion namens GETREGVAL Para meter sind hier die selben wie bei LETREGVAL nur dass hier nat rlich kein Wert daf r aber eine R ckgabevariable angegeben werden muss Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 47 von 138 7 Benutzerhandbuch Dieses Beispiel liest die oben geschriebenen Werte wieder aus der Registry aus rem Stringwert aus Registry lesen getregval text string CURRENT_USER Test HelloWorld echo Stringwert in HelloWorld text rem Bin rwert aus Registry lesen getregval data binary CURRENT USER Test binary_HelloWorld cho Gelesene ASCII Liste aus binary_HelloWorld data rem ASCII Codes in ASCII Zeichen umwandeln und an Ausgabestring h ngen i 0 repeat Lt ri gettok zeichen data std_sep i if zeichen getchr zeichen zeichen klartext zeichen endif until zeichen rem Den Klartext ausgeben echo Klartext aus binary_HelloWorld klartext
11. Bitte geben Si twas ein hello world echo test end Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 28 von 138 k5 Benutzerhandbuch Neben dem INPUTBOX Dialog bietet RapidBATCH auch den PWDBOX Dialog Eine PWDBOX ist nichts anderes als eine INPUTBOX f r Passw rter die zur Eingabe des Wertes anstatt eines normalen Textfeldes ein maskiertes Einga befeld zur Verf gung stellt in dem jedes eingegebene Zeichen durch ein maskiert wird Ein PWDBOX Dialog kann und sollte daher auch nur zur verdeckten Eingabe von Passw rtern eingesetzt werden daher auch der Name PWD ist die englische Abk rzung f r Password Die Parameter von PWDBOX sind dieselben wie bei der INPUTBOX mit selber Funktion zudem lassen sich da PWDBOX das selbe Fenster verwendet wie INPUTBOX die Beschriftung der Buttons ebenfalls ber InputBox_Ok und InputBox_Cancel ndern ebenso InputBox_X und InputBox_Y f r die Positionierung des Dialogs auf dem Bildschirm pwdbox passwort Passwort Bitte geben Sie Ihr Passwort ein echo Ihr Passwort lautet passwort end Bisher haben wir nur einzeilige Eingaben t tigen k nnen Diese reichen nat rlich f r sehr viele Anwendungsbereiche bereits aus Wenn wir aber nun gr ere Eingaben z B eine Adresse oder sogar einen ganzen Text vom Script User abfragen m chten gen gen Dialoge wie INPUTBOX oder PWDBOX nicht mehr Hier m ssen wi
12. Mit Setzen von ListBox_MultiSel auf den Wert 0 lassen sich mehrere Eintr ge im LISTBOX Dialog selektieren diese werden dann als Liste zur ckgegeben wo jedes selektierte Element durch das in std_sep definierte Trennzeichen separiert wird Steht ListBox_MultiSel auf 1 ist nur eine einfache Selektion m glich Mit den Variablen ListBox_Width und ListBox_Height lassen sich die Breite und H he des Dialogs in Pixel bestimmen ber ListBox_X und ListBox_Y lassen sich die X und Y Koordinaten in Pixel bestimmen an denen die LISTBOX angezeigt werden soll Standardwert von beiden Variablen ist 0 in diesem Fall wird der Dialog zentriert dargestellt XPStyleActive Metric_Menu_Height Metric_Caption_Height Metric_Edge_Height Met ric_Edge_Width Beschreibung Die Variable XPStyleActive hat den Wert 0 bzw true wenn das verwendete Betriebssystem Windows XP oder Win dows 2003 ist und der aktuelle Benutzer das Windows XP Theme eingeschaltet hat Beim klassischen Windows Theme sowie unter lteren Windows Systemen wie 2000 oder 98 enth lt die Variable den Wert 1 bzw false Die Variablen Metric_Menu_Height Metric_Caption_Height Metric_Edge_Height und Metric_Edge_Width enthalten Informationen ber die H he der Men leiste die H he der Titelleiste sowie H he und Breite der Umrandung eines Fens ters Verwenden Sie diese Variablen um Ihre selbst erstellten Anwendungsfenster optimal an Windows XP Themes s
13. RI Rapi Fi TCH5 tzerhandbuch k5 Benutzerhandbuch Inhaltsverzeichnis W s st RapIdBATGH Messen Gere a TENETE Te ne er 3 Wasilst neu in Version Das unserer HERE 4 Verbesserungen in Version d 1 502 352022020 sHn Haan anne ann anne anna aaa 6 Wer entwickelt RapidBATCH 422244444000nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 6 DIE GrUNdIAgeN en ae E a a a FERNER ERNER 7 Eineinfaches ScHipt ssaa a E EE T EE EE E E E E E E E E E EERE 7 Nada Dle Mieren a EEE ETE EEA EEA EREEREER EE EAEE EEEE 9 Werte manipulieren aannamen ionieni naini EaR EEAS ERE TANE AEO AAE RA AAi 11 Bedingungen und Schleifen en 12 Spr nge und SUDS 4 4 0H HH Hei 13 EEA ERIC ERS SOEBEN 15 Prozedurale Programmierung 44444444440H0nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnen 18 Benutzerdefinierte Prozeduren und Funktionen 44444444snnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 18 Rekursive Programmierung von Prozeduren 4444444snnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnrnnnnnnnnnn 20 Zeiger auf Variablen PPERLERERSPEREPEPEFELLERELEBBPEEFEFFELTELERBEPEBEEEPEEFFRERERPLERE N EEEREN aa Aaaa EEE EE EDEN 22 Bulld in DialogfenSter sirinu iaaa aaa ANEREN ae Traiano aai Paanan Taaka aieea aa EEEn 25 Meldungen und Statusausgaben u 444244444snnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
14. Standardm ig erlaubt LISTBOX nur die Auswahl eines einzelnen Eintrags Wenn jedoch die Variable ListBox_MultiSel den Wert 0 hat so lassen sich auch mehrere Eintr ge selektieren In diesem Fall gibt die Funktion eine Liste zur ck in der alle selektierten Elemente durch das in std_sep definierte Zeichen voneinander getrennt sind Menieintrag 1 Men eintrag 2 Meniieintrag 3 Beispiele rem LISTBOX mit einfacher Auswahl listbox menu Men Pizza Pommes Frites D ner Hamburger Hot Dog if menu echo Sie haben menu bestellt Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 93 von 138 k5 Sprachreferenz alse echo Sie haben keine Auwahl getroffen endif rem LISTBOX mit Mehrfach Auswahl ListBox_MultiSel true listbox menu Men 2 Pizza Pommes Frites D ner Hamburger Hot Dog ie menu Zr replacevar menu menu std_sep new_line echo Ihre Bestellung new_line new_line menu else echo Sie haben keine Auwahl getroffen endif Bemerkungen Die Beschriftung des OK Buttons von LISTBOX kann ber die Variable ListBox_Ok ge ndert werden Wird die Beschrif tung des Buttons auf einen Leerstring gesetzt wird der Button aus dem Dialog ausgeblendet nur Anzeige der Elemente in der Liste Die Position des Dialogs kann mit Hilfe der Variablen ListBox_X und ListBox_Y ver ndert werden Hat ListBox_X und
15. Verbesserte Vergleichsoperatoren f r Bedingungen Gr er gleich gt und kleiner gleich lt enthalten ab RapidBATCH v5 0 5 Implementierung von Quick Assignments Durch Angabe eines RapidBATCH Standard Operators anstatt des Gleichheitszeichens bei einer Zuweisung wird dieser Operator mit der zuzuweisenden Variablen verbunden und gleichzeitig zugewiesen Dies spart viel Tipparbeit bei z B Inkrementationen oder beim verbinden von Strings Dynamische Spr nge via GOTO und GOSUB erm glichen es einen variablen Label Namen als Sprungziel an zugeben zu dem gesprungen wird Virtuelle Scriptzusammenf hrung Mit den Anweisungen INCLUDE und INCLUDE_ONCE k nnen jetzt mehrere RapidBATCH Scriptdateien zur Laufzeit virtuell zu einem gro en Script zusammengef gt werden Dies erm g licht die Definition von Funktions und Prozedurbibliotheken die in unterschiedlichen Scripts angewandt werden k nnen Neuer build in Dialog TRAYMENU zum Bereitstellen eines Men s im Windows System Tray in der Taskleiste Neuer build in Dialog PWDBOX zum Anzeigen und Bereitstellen eines maskierten Eingabedialogs zur Eingabe von Passw rtern Neue Schleifenkontroll Statements BREAK und CONT zum Verlassen bzw Fortf hren von REPEAT UNTIL Schleifen Erweiterte zeichenorientierte Dateiverarbeitung mit GETFILE und PUTFILE womit das lesen und schreiben von Bin rdaten erm glicht wird Mit Hilfe der neuen Funktionalit ten NEWDIALOG LETDIALOG GETDIALOG DELDI
16. Wenn die Datei nicht gefunden wurde er h lt nur errorcode den Wert 1 der R ckgabewert ist dann ein Leerstring Wenn als Zeilennummer ein Wert kleiner 1 angegeben wird liest READFILE den Inhalt der gesamten Datei und gibt diesen zur ck Beispiele rem Erste Zeile lesen readfile itext Ver teese ezet Tin rem Gesamte Datei lesen readfile text c test txt 0 rem Ersten 10 Zeilen einer Datei ausgeben i 0 text 1 repeat Ba eat readfile zeile C jmksf rb5 readme txt i if zeile EOEF eesti ZenleirtZmew lkme endif une a e Opere TEORI echo text end Bemerkungen Verwenden Sie die GETFILE Funktion um Daten auf Byte Ebene aus einer Datei z B Bin rdatei zu lesen WRITEFILE Syntax WRITEFILE Dateiname Stringausdruck Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 101 von 138 k5 Sprachreferenz Beschreibung Schreibt den angegebenen Stringausdruck in die ebenfalls angegebene Datei wobei die Daten ans Dateiende ange h ngt werden Der Inhalt der Datei wird dabei nicht berschrieben sondern nur erweitert Wenn die Datei nicht existiert wird sie automatisch erstellt Beispiele weil VEI ecas EE elo worrie Bemerkungen Die Variable errorcode erh lt den Wert 1 wenn die Datei nicht erstellt oder geschrieben werden konnte andernfalls 0 Standardm ig h ngt WRITEFILE einen Windows Zei
17. 7 CANCEL 2 MSGBOX Style 3 4 j YES 6 NO 7 MSGBOX Style 4 5 RETRY 4 CANCEL 2 MSGBOX Style 5 Rechnet man zum gew nschten Button Style noch einen der folgenden Werte hinzu so kann man auch eines der vier Standard Icons bestimmten Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 26 von 138 k5 Benutzerhandbuch Icon Beispiel Icon Beispiel Icon Beispiel Style Style Style i 7 Icon Style 16 2 j Icon Style 32 48 A Icon Style 48 Icon Style 64 Ein Beispiel w re hier lt Sstart msgbox Eine Frage Klicken Sie einen der Buttons 48 4 if errorcode 6 rem Fall Ja echo Sie haben Ja angeklickt SOLO SLart elseif errorcode 7 rem Fall Nein echo Sie haben Nein angeklickt goto start else rem Fall Abbruch echo tund tsch ss T endif end Wenn man zum Style noch den Wert 0 f r den ersten 256 f r den zweiten oder 512 f r den dritten hinzurechnet kann man den Eingabefokus auch direkt auf einen der Buttons setzen Welcher Button den Focus hat sieht man an dem kleinen getrichelten Kasten um den Button herum Hat ein Button den Focus so wird dieser Button ausgel st wenn der Benutzer einfach die Eingabetaste bet tigt Beispiel mS lt o ones EA El Holkuszele eo een mies arest Nrlalus DU Na Neal a 258 mecsox ages wealk s 3
18. COMBO STATIC_COMBO RADIO OPTION GROUP IMAGE PWD PROGRESS R ckgabewert Die Y Position des Widgets in Pixel Mit GETDIALOG l sst sich auch ermitteln ob bestimmte Events Ereignisse die bei der Ausf hrung von RUNDIALOG auftreten k nnen f r ein Widget gesetzt sind oder nicht Die folgende Tabelle beschreibt und erkl rt die verschiedenen Ereignisse und gibt Auskunft ber die unterst tzten Wid gets f r jedes Ereignis kein Widget unterst tzt alle m glichen Ereignisse Ob das jeweilige Ereignis gesetzt bzw eingeschaltet ist ist an den Werten 0 Ereignis ist gesetzt und 1 Ereignis ist nicht gesetzt die durch GETDIALOG zur ckgegeben werden erkennbar Der Default Status der nach der Erzeugung eines Widgets automatisch f r den jeweiligen Element Typ gesetzt wird ist in Klammern hinter den unterst tzten Dialog elementen angegeben Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 127 von 138 k5 Sprachreferenz Ereignis Bezeichner Beschreibung Unterst tzte Widgets DIALOG 1 BUTTON 0 IMAGE EVENT_CLICK Ereignis beim Anklicken eines Widgets BUTTON 0 LABEL 1 OPTION 1 RADIO 1 IMAGE 1 MENU 0 EVENT_DBLCLICK beim doppelten Anklicken eines Wid LIST 1 LIST_SORTED 1 u Bu INPUT 1 EDIT 1 PWD 1 EVENT_CHANGE Ereignis beim Andern eines Ei
19. Dieses Feature ist bereits undokumerntiert seit RapidBATCH 5 0 3 implementiert wurde aber bis zu dieser Version ausgiebig erprobt und getestet e Um auch auf Fensterelemente in RapidBATCH Dialogen ber externe DLL Funktionen zugreifen zu k nnen k nnen bei GETDIALOG jetzt auch die Attribute HWND f r das interne Window Handle eines Widgets und TYPE zum ermitteln des Widget Typs zu jedem Widget abgefragt werden e _Fehlerhaftes GETFILEATT in EXE Programmen behoben e Fehler bei gleichnamigen globalen und lokalen Variablen in EXE Dateien behoben e _Fehlerbehebung bei der Suche im RapidBATCH Builder Der Builder h ngt sich jetzt nicht mehr auf wenn ein bereits gesuchter String ersetzt wurde und nicht mehr gefunden wird e Zahlreiche kleinere Fehler aus den erweiterten RapidBATCH Funktionsbibliotheken bereinigt Mit der Version 5 1 wird RapidBATCH daher noch produktiver und effizienter als je zuvor Wer entwickelt RapidBATCH RapidBATCH ist eine wachsende Programmiersprache die stetig fort und weiterentwickelt wird Entwickler von RapidBATCH ist die kleine Softwareschmiede J M K S F Software Technologies aus Unna nahe Dort mund in Nordrhein Westfalen deren Inhaber und Haupt Entwickler der Jungunternehmer Jan Max Meyer ist Wir haben es uns zum Ziel gesetzt neue Programmiersysteme zu entwickeln die einfachste Handhabung h chste Qualit t und exzellente Performance bieten Mit der vorliegenden neuen Version 5 von RapidBATCH habe
20. Fehleingabe endif letdialog umrechner konvert text konvert endproc rem Implementation der Prozedur berechne Dezimalwert proc berechne _Dezimalwert dec dezimal konvert rem Dezimalwert aus Zahlensystemwert errechnen getdialog konvert umrechner konvert text rE konverti mn rem Wert berechnen mit der base_to_decimal Bibliotheksfunktion base_to_decimal dezimal konvert aktuelle_basis if dezimal 1 dezimal Fehleingabe endif letdialog umrechner dezimal text dezimal endproc rem Implementation der Prozedur setze_Zahlensystem proc setze _Zahlensystem zahlensystem rem H ckchen aus Men punkten entfernen letdialog umrechner Menu_Dezimal gt amp Oktal checked false letdialog umrechner Menu_Dezimal gt amp Hexadezimal checked false letdialog umrechner Menu_Dezimal gt amp Bin r checked false rem Zahlensystembezeichnung vor dem Eingabefeld sowie H ckchen im Men setzen if zahlensystem bin letdialog umrechner 1l_konvert caption Bin rwert letdialog umrechner Menu_Dezimal gt amp Bin r checked true elseif zahlensystem okt letdialog umrechner 1l_konvert caption Oktalwert letdialog umrechner Menu_Dezimal gt amp Oktal checked true elseif zahlensystem hex letdialog umrechner 1l_konvert caption Hexadezimalwert letdialog umrechner Menu_Dezimal gt amp
21. Software Technologies Jan Max Meyer All rights reserved Seite 43 von 138 MR h Benutzerhandbuch Programme fernsteuern Eine effektive M glichkeit der Automatisierung ist auch das Fernsteuern von fremden Anwendungen RapidBATCH ist dabei in der Lage anderen Windows Programmen vorzugaukeln der PC Benutzer w rde das Programm selbst bedie nen indem es Tastaturbefehle und Tastenkombinationen an das entsprechende Fenster sendet Zu diesem Zweck stellt RapidBATCH die SENDKEYS Anweisung zur Verf gung Mit einer sehr einfach zu erlernenden und primitiv aufgebauten Makrosprache kann der RapidBATCH Programmierer ber diese Anweisung Tastenkombinati onen und Tastatureingaben an theoretisch jedes beliebige Windows Programm senden Folgendes Script demonstriert wie sich der Windows Editor Notepad fernsteuern l sst Es startet Notepad und gibt den Text Hello World ein Danach wird die Datei gespeichert und das Programm anschliessend beendet wozu das Script die entsprechenden Tastenkombinationen schickt um das Men zu ffnen und den Men punkt Datei gt Speichern auszuw hlen shell windir notepad exe show sendkeys Unbenannt Editor Hello World alt dstest txt enter alt f4 end Als ersten Parameter erwartet SENDKEYS den Titel des Fensters an dem das Programm identifiziert wird Dieser Titel kann zum Beispiel auch ber die Variable active_window geholt werden die den Titel des aktiven Vordergrundfensters en
22. Um die Anzahl der Elemente die je Dimension in einem Array existiert zu ermitteln verwendet man die Dimensionan gabe 0 meinArray 1 Ich bin der erste Eintrag in dem Array meinArray 2 Ich bin der zweite Eintrag in dem Array meinArray 3 Ich bin der letzte Eintrag in dem Array echo Das Array beinhaltet momentan meinArray 0 Elemente il 0 repeat Esel er Par echo t Eintrag Nee R az Zimein Array until a meinArray 0 end Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 16 von 138 h Benutzerhandbuch Wie bereits oben kurz angesprochen k nnen Arrays auch in verschiedenen verschachtelten Dimensionen angelegt werden Eine Dimension ist sozusagen ein untergeordnetes Array eines Array Elementes D h wir k nnen f r jedes Array Element ein untergeordnetes Array anlegen Jedes Element dieses untergeordneten Arrays kann wiederum ein untergeordnetes Array beinhalten das ganze ist in RapidBATCH bis zu 9 Dimensionen m glich eine immens gro e Kapazit t Um mehrdimensionale Arrays anzulegen geht man genauso vor wie wenn man ein einfaches Array deklariert bzw auf f llt Man weist einfach einem nicht existierenden Element in irgendeiner Dimension einen Wert zu RapidBATCH redi mensioniert bzw reserviert sich den n tigen Speicher der zum Erreichen der angegebenen Dimension n tig ist automa tisch Ein Beispiel wobei die DEC Anweisung
23. Zu guter Letzt entfernen wir noch die geschriebenen Werte mit Hilfe der DELREGVAL Anweisung aus der Registy rem HelloWorld entfernen delregval CURRENT_USER Test HelloWorld if lerrorcode 0 cho Fehler beim L schen von HelloWorld endif rem binary_HelloWorld entfernen delregval CURRENT_USER Test binary_HelloWorld sera lerroreodein Zion echo Fehler beim L schen von binary_HelloWorld endif Systemspezifische vordeklarierte Variablen Es mag vielleicht sein dass der Abschnitt Systemoperationen nicht ganz passend ist um alle vordeklarierten Variab len die RapidBATCH bietet zu behandeln aber es haben auch sehr viele der vordeklarierten Variablen ihre Bestim mung bei der Programmierung von Scripts die system basierende Operationen ver und bearbeiten Bis jetzt haben Sie bereits viele der so genannten vordeklarierten Variablen kennen gelernt Vordeklarierte Variablen werden vor der Aus f hrung eines jeden Scripts automatisch vom Interpreter deklariert Bei einigen vordeklarierten Variablen ist der darin enthaltene Wert nderbar bei anderen wird er bei jedem Aufruf der Variable direkt neu ermittelt Ich werde in diesem Kapitel zwar nicht alle vordeklarierten Variablen behandeln aber die wichtigsten besonders solche die f r Systemoperationen von Bedeutung und Nutzen sind Oftmals ist es von gro em Nutzen ein Programm bzw Optionen und Informationen an ein Programm ber die
24. ckgabewert von LISTBOX bei einer Mehrfach Auswahl rem Dateiliste generieren Dateinamen werden von FINDFILES als Liste zur ckgegeben findfiles dateiliste C WINDOWS 1 rem Dateiauswahl erm glichen mit LISTBOX ListBox_wWidth 300 ListBox_Height 500 ListBox_MultiSel 0 ListBox_Ok Ausw hlen listbox auswahl Bitte Datei w hlen dateiliste if auswahl echo Kein Element ausgew hlt else echo Gew hlte Datei en auswahl endif end Neben der LISTBOX bietet RapidBATCH seit der Version 5 0 nun auch eine neue professionelle Men Auswahlm glichkeit Den TRAYMENU Dialog TRAYMENU erm glicht das Anzeigen eines so genannten Traybar Men s in der Windows Taskleiste Der Dialog selbst wird durch ein kleines Icon repr sentiert wobei man das Men mit einem Rechtsklick auf das Icon anzeigen kann Mit dieser M glichkeit kann man beispielsweise ein Script entwickeln welches permanent im Hintergrund l uft aber mittels Auswahl von Programmfunktionen oder durch Klicken des Icons eine Aktion ausl sen kann Eintrag 2 N Bitte w hlen Sie einen Eintrag aus Eintrag 3 DE 973703729 DE Pipi Einfache aber effektive Auswahl und Men programmierung mit dem TRAYMENU Men dialog Im Grunde genommen wird TRAYMENU genauso verwendet wie die LISTBOX Man bergibt einen Titel der als Tooltip angezeigt wird wenn der Benutzer mit der Maus ber das Icon f hrt und eine Lis
25. copyfile c jmksf rb5 samples hello rb a hello rb rem Datei umbenennen rename tile Ver test neu Ver test old Bemerkungen Ist die jeweilige Operation erfolgreich so erh lt errorcode den Wert 0 ansonsten 1 FILESIZE Syntax FILESIZE Dateigr e Dateiname Beschreibung Ermittelt die Gr e einer Datei und gibt diese Gr e in Bytes zur ck Beispiele filesize bytes c command com echo COMMAND COM hat eine Gr e von bytes Bytes end Bemerkungen Um eine Dateigr e in Kilo Mega Giga oder Terabyte auszugeben muss der Wert jeweils durch 1024 geteilt werden F r Kilobyte teilt man 1 mal durch 1024 f r Terabyte 4 mal durch 1024 usw Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 100 von 138 MR 5 Sprachreferenz FILEEXISTS Syntax FILEEXISTS Existenz Dateiname Beschreibung Pr ft die Existenz der angegebenen Datei Wurde die Datei gefunden gibt die Funktion den Wert 0 ansonsten 1 zu r ck Beispiele fileexists errorcode c windows calc exe if errorcode 0 echo Die Datei CALC EXE existiert Bemerkungen keine READFILE Syntax READFILE Zeile Dateiname Zeilennummer Beschreibung Liest die angegebene Zeile aus der gegebenen Datei und gibt diese als String zur ck Ist das Dateiende erreicht erh lt errorcode den Wert 1 und der R ckgabestring ist EOF End Of File
26. eines Arrays angegeben wird er kann neben der oben gezeigten Variante auch in den folgenden Formen angegeben werden dec meinArray 10 dec meinArray 10 dec 10 meinArray dec mein 10 Array Auch wenn letztere Schreibweise sehr merkw rdig aussieht sie ist eine g ltige Index Angabe und das Array wird unter dem Namen meinArray deklariert Der Index kann selbstverst ndlich auch v llig dynamisch ber eine Variable angegeben werden index 10 dec meinArray index dec meinArrayl index dec mein index Array Arrays k nnen auch durch direkte Zuweisung eines Wertes zu irgend einem Index deklariert bzw erzeugt werden Das bedeutet auch dass Sie jede beliebige in Ihrem RapidBATCH Script verwendete Variable durch eine einfache Zuwei sung eines Wertes zu einem Index in ein Array umwandeln k nnen Folgendes Beispiel erzeugt ein Array mit drei Wer ten durch die direkte Zuweisung der Werte ohne vorherige explizite Deklaration Die Elemente des Arrays werden dabei r ckw rts ausgegeben d h der letzte Eintrag zuerst wie aus der Schleife ersichtlich ist meinArray 1 Ich bin der erste Eintrag in dem Array meinArray 2 Ich bin der zweite Eintrag in dem Array meinArray 3 Ich bin der letzte Eintrag in dem Array u repeat echo meinArray i Be 1 ehakearl I gt ot end Doppelpunkte und Kommata werden dabei im Variablennamen einfach ignoriert d h sie sind nicht zwingend notwendig
27. end Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 21 von 138 h5 Benutzerhandbuch Dieses Beispiel zeigt auch nochmal die Verwendung von lokalen und globalen Variablen Bei jedem rekursiven Aufruf werden alle lokalen Variablen der Prozedur Funktion neu deklariert und k nnen auch mit neuen bzw unterschiedlichen Werten gef llt werden Es k nnen daher als Beispiel mehrere Tausend Variablen x im Speicher existieren doch nur eine ist lokal f r den aktuellen Aufruf der Prozedur g ltig Daher k nnen auch nicht die Werte von darunterliegenden Rekursionen ge ndert werden w re dies m glich w re rekursive Programmierung v llig unn tz Anders verh lt es sich bei den altbekannten globalen Variablen Diese behalten ihren Wert so wie unsere Variable rekebene Wir k nnen rekebene daher bei jedem Aufruf um 1 inkrementieren erh hen und vor jeder Beendigung der Funktion wieder um eins dekrementieren verringern Somit k nnen wir im Meldungfenster immer genau sehen in wel cher Rekursions Tiefe wir uns gerade befinden Wie Sie bei der Ausf hrung des Scripts sicherlich bemerkt haben ruft sich die Funktion bei bergabe des Wertes 4 genau 5 mal wieder selber auf also bis der Ubergabe Wert 0 ist Rekursive Programmierung l sst sich sehr vielf ltig einsetzen und kann usserst effektiv sein Um Beispielsweise ein Verzeichnis zu duplizieren wurde in die RapidBATCH Systemfunktions B
28. endif Bemerkungen Verwenden Sie die Dialoge OPENBOX und SAVEBOX um die Auswahl einer Datei zu erm glichen OPENBOX SAVEBOX Syntax OPENBOX Datei Dialogtitel Filter SAVEBOX Datei Dialogtitel Filter Beschreibung OPENBOX zeigt einen Standarddialog zum ffnen einer Datei an SAVEBOX zeigt einen Standarddialog zum Speichern einer Datei an Als Parameter ben tigen beide Funktionen einen Dialogtitel sowie einen Dateifilter der wie folgt definiert wird FilterbezeichnungjFilter Beispiel f r einen TXT Dateifilter w re Textdateien txt Um mehrere Filter zur Verf gung zu stellen diese k nnen im Dialog vom Benutzer ausgew hlt werden lassen sich die einzelnen Filterelemente einfach hintereinander schreiben Textdateien txt Word Dateien doc Um mehrere Filter unter einem Namen zu verwalten spezifizieren Sie den Filter wie folgt Ausf hrbare Datei en exe com bat R ckgabewert der Funktion ist der komplette Dateiname mit Pfad wenn der Benutzer eine Datei doppelt geklickt oder einen Dateinamen ausgew hlt und OK gedr ckt hat Hat der Benutzer Abbrechen oder den Schlie en Button des Dia logs gew hlt so wird ein Leerstring zur ckgegeben Bitte w hlen Sie eine Datei aus Suchen in O 1b5be3 doc UI etc Zuletzt lib verwendete D samples E install txt B omm Desktop E plink exe g rbb4 exe A rbc32 exe D g rbi32 exe E rbrun32 rtl E rbscript ico
29. r HKEY_CURRENT_CONFIG CURRENT_USER f r HKEY_CURRENT_USER LOCAL_MACHINE f r HKEY_LOCAL_MACHINE USERS f r HKEY_USERS DYN_DATA f r HKEY_DYN_DATA Der Unterschl ssel gibt den Pfad des Unterschl ssels jeweils getrennt durch Backslash an Als Wertbezeichner wird ein frei definierbarer Bezeichner f r den Wert definiert ber den der Wert sp ter wieder ausge lesen werden kann Der letzte Parameter beinhaltet dann den Wert der unter der Bezeichnung des Wertbezeichners in die Registry ge schrieben wird im als Datentyp entsprechend angegebenem Format Beispiele letregval STRING CURRENT_USER Software jmksf RapidBATCH HelloWorld Hello World by RapidBATCH if errorcode 0 echo Wert wurd rfolgreich geschrieben else echo Fehler beim Schreiben halt endif rem Schreiben von Bin r 85 Hexadezimal 55 getchr bin 85 letregval BINARY CURRENT_USER Software jmksf RapidBATCH bin85 bin if errorcode 0 echo Wert wurd rfolgreich geschrieben else cho Fehler beim Schreiben halt endif rem Auf umen delregval CURRENT_USER Software jmksf RapidBATCH HelloWorld if errorcode 1 echo Fehler beim L schen von Registry Wert delreqgval CURRENT_USER Software jmksf RapidBATCH bin85 if errorcode 1 echo Fehler beim L schen von Registry Wert end Bemerkungen Wenn LETREGVAL fehlsc
30. readfile dir_ausgabe test txt 0 echo dir_ausgabe rem test txt wieder l schen delfile test txt end Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 36 von 138 MR H Benutzerhandbuch Datentr ger in Laufwerk C ist master volumeseriennummer FCC9 7654 Verzeichnis von C jmksfirbS 11 12 2004 16 08 46 080 plink exe 25 07 2005 23 20 169 984 rbSrtl exe 01 08 2005 22 53 147 968 rbb4 exe 10 07 2005 03 02 200 704 rbc32 exe 05 08 2005 19 54 207 360 rbi32 exe 01 08 2005 00 12 211 968 rbi32_debug exe 19 04 2005 21 27 635 337 unins000 exe 7Dateifen 1 619 401 Bytes 0 Verzeichnis se 4 108 111 872 Bytes frei Die Ausgabe des DIR Befehls umgeleitet und ausgelesen aus einer Datei Anmerkung Unter Windows 95 98 und ME m ssen Sie bei dem oben gezeigten Beispiel anstatt CMD EXE das Pro gramm COMMAND COM aufrufen Zur letzten M glichkeit externe Programme zu starten geh rt die OPEN Anweisung OPEN kann vielseitig eingesetzt werden beispielsweise kann hier auch anstatt eines Programmpfades der Name einer Datei die dann mit dem entspre chend verkn pften Programm ge ffnet wird oder eine Internet URL die dann im Standard Browser geladen wird ange geben werden Beispiele open calc exe open C jmksf rb5 license txt open http www rapidbatch com end Wenn OPEN zum Starten von Programmen benutzt wird entspricht dies einem Aufruf von SHELL mit dem Anzeig
31. wie bereits angesprochen nur bei bestimmten Programmen anwendbar Folgendes Script starten den Editor Notepad von Windows shell notepad exe show echo Und jetzt starten wir Notepad maximiert shell notepad exe maximized echo Ende end Neben der SHELL Anweisung bietet RapidBATCH auch die CALL Anweisung CALL ist von den Parametern her iden tisch zu SHELL hat aber die Eigenschaft dass das RapidBATCH Script welches die Anwendung mit CALL aufgerufen hat solange mit der Programmausf hrung wartet bis das gestartete Programm abgearbeitet oder vom Benutzer been det wurde Hier einmal unser Beispiel von oben welches aber mit CALL arbeitet call notepad exe show echo Und jetzt starten wir Notepad maximiert call notepad exe maximized echo Ende end Oftmals ist auch die Verwendung von MS DOS Konsolenkommandos einfach unabdingbar Zur schnellen Ausf hrung eines Konsolenkommandos bietet RapidBATCH die SYSTEM Anweisung Als Parameter wird das entsprechene Kom mando erwartet Beispiel rem Ping an www jmksf de schicken system ping www jmksf de end Mit CALL bzw SHELL lassen sich DOS Kommandos auch versteckt ausf hren dieses Beispiel verwendet die Funktion READFILE zum Auslesen der Datei die wir sp ter detaillierter besprechen werden rem dir Kommando senden und in Datei test txt umleiten call emd exe C dir exe gt test txt hide rem test txt einlesen und ausgeben
32. 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 103 von 138 k5 Sprachreferenz R ckgabewert ist eine Liste an Dateien mit relativen Unterverzeichnis Pfaden die durch den Listentrenner definiert in der Variable std_sep voneinander getrennt sind Beispiele rem Alle Dateien im Verzeichnis RB5 ohne Unterverzeichnisse auflisten chdirt Mern IMESENEDS frndeirlles Eile listn ene a replacevar filelist filelist std_sep new_line echo filelist rem Alle EXE Dateien von C JMKSF auflisten find enles i tileiistei Se Nomes exen Or replacevar filelist filelist std_sep new_line echo filelist end Bemerkungen Wenn Sie die Dateien zur sp teren Verwendung aus der Dateiliste extrahieren wollen benutzen Sie bitte die Funktionen GETTOK und REPLACEVAR wie in dem Beispiel gegeben Die Funktionsbibliothek ARRAY RB bietet ausserdem n tzliche Funktionen und Prozeduren zum Umwandeln von Datei listen in Arrays GETFILEATT LETFILEATT Syntax GETFILEATT Attributschalter Dateiname Attributnummer LETFILEATT Dateiname Attributnummer Beschreibung GETFILEATT gibt Auskunft ob ein angefordertes Dateiattribut bei der ebenfalls spezifizierten Datei gesetzt ist oder nicht M gliche Werte f r die Dateiattributnummer sind NORMAL 0 ARCHIVED 1 READONLY 2 COMPRESSED 3 DIRECTORY 4 HIDDEN 5 und SYSTEM 6 zu Deutsch Normal Archiviert Schre
33. All rights reserved Seite 46 von 138 7 Benutzerhandbuch 2 Registrierungs Editor Datei Bearbeiten Ansicht Favoriten 3 Arbeitsplatz Name Typ Wert a a HKEY_CLASSES_ROOT ab Standard REG_5Z Wert nicht gesetzt S E HKEY_CURRENT_USER B Helloworld REG_5Z Das ist der Wert psf a AppEvents GI Console Control Panel E Environment H Identities Keyboard Layout Printers psfFile GI SessionInformation E Software ar C UNICODE Program Groups 5 volatile Environment W E HKEY_LOCAL_MACHINE E HKEY_USERS HKEY_CURRENT_CONFIG Arbeitsplatz HKEY_CURRENT_USER Test Erfolgreich geschriebener Wert in der Registry Es kann auch ein Wert direkt in den Schl ssel geschrieben werden Hier l sst man einfach den Parameter f r den Re gistry Wertnamen leer letregval Pstring CURRENTUSER Test i Das rst der Wert Um einen Bin rwert zu schreiben wird bei der LETREGVAL genauso verfahren wie bei PUTFILE Eine Liste an ASCII Zeichencodes bei der jeder Wert zwischen 0 und 255 liegen kann also 8 Bit je Zeichen Hier ein Hello World in bin r rem Wert in Registry schreiben hello 72 101 108 108 111 32 87 111 114 108 100 letregval binary CURRENT_USER Test binary_HelloWorld hello rem War das Schreiben des Wertes erfolgreich if errorcode 0 echo Schreiben der Registry war erfolgreich else echo Fehler beim Schreiben der Registry endif
34. Anzeige der X Y Koordinaten proc viewpos infobox wait 1 endproc x mouse xl yY mouse yl rem Bewege Mauszeiger horizontal i ScreenWidth repeat mouseevent move i 1 viewpos Bel unea Kae ud rem Bewege Mauszeiger vertikal i 0 repeat Esel re nt mouseevent viewpos until i ScreenHeight Salt Ei move rem Bewege Mauszeiger diagonal 19 0 repeat Ks ar a mouseevent viewpos until i l ScreenWidth end move il il Bemerkungen 4 oder DBLCLICK_RIGHT doppelten Rechtsklick simulieren show Verwenden Sie die SENDKEYS Anweisung um Tastenanschl ge zu simulieren Alternativ k nnen auch die vordefinierten Variablen mouse_x und mouse _y dazu verwendet werden die Mausposition zu ver ndern LOCKWORKSTATION Syntax LOCKWORKSTATION Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 114 von 138 k5 Sprachreferenz Beschreibung Sperrt eine Windows 2000 oder Windows XP Professional Workstation Diese Anweisung ist unter Windows 95 98 ME NT sowie XP Home unwirksam Beispiele rem Arbeitsstation sperren confirm sperren Computer sperren if sperren true rem Computer sperren lockworkstation endif end Bemerkungen errorcode erh lt den Wert 1 wenn die Arbeitsstation nicht gesperrt werden konnte z B wenn sie schon gesperrt ist oder das Betriebssystem dies
35. Bedingung des IFs das Ergebnis FALSE falsch liefert Wird ein ELSEIF angegeben lassen sich mehrere Bedingungen pr fen wenn die erste Bedingung das Ergebnis FALSE liefert Es k nnen beliebig viele ELSEIF Bl cke in einem IF Block vorkommen jedoch ist nur ein IF und ein ELSE je Block er laubt Anweisungsbl cke k nnen weitere IF Bl cke beinhalten verschachtelte IF Bl cke Eine Bedingung ist ein Vergleich zweier Werte wobei diese Werte auf gleich ungleich gr sser als gt und kleiner als lt gepr ft werden k nnen Zudem sind die Operatoren gr er gleich gt und kleiner gleich lt m glich Um mehr als zwei Bedingungen bei einer IF Anweisung zu berp fen lassen sich mehrere Bedingungen mit den logi schen Operatoren UND amp und ODER verkn pfen wobei der amp Operator nur TRUE zur ckgibt wenn alle mit diesem Operator verkn pften Bedingungen erfolgreich gepr ft wurden Beim Operator muss eine der beiden Bedingungen oder auch beide das Ergebnis TRUE liefern Beispiele if a b echo A ist gleich Bl if a gt b echo A ist gr er oder gleich B if password swordfish echo Login erfolgreich else echo Falsches Passwort halt endif iE ja lt Sol echo Fehler halt elseif b lt 5 echo Alles in Ordnung endif rem Logisches UND liefert nur wahr wenn beide Variablen den Wert 10 enthalten al 10 Kol ial See er N le echo A und B h
36. Bin r Dezimal gt Oktal und Dezimal gt Hexadezimal erzeugt Mehr Informationen zum MENU Attribut von LETDIALOG k nnen Sie ebenfalls der Sprachre ferenz entnehmen Im zweiten Abschnitt des Scripts erzeugen wir vier weitere Widgets jeweils zwei Eingabefelder und zwei statische Texte welche als Bezeichnungsfelder vor den Eingabefeldern angezeigt werden F r die Eingabefelder setzen wir durch Ver wendung des FONT Attributes ber LETDIALOG eine alternative Schriftart hier Sans Serif 10 Punkt Fett Auf Basis dieses Prototypen implementieren wir nun die Funktionalit ten zu unserem Programm Als erstes importieren wir die RapidBATCH Bibliotheken MATH RB welche die Konvertierungsfunktionen deci mal_to_base und base_to_decimal bereitstellt sowie die DIALOG RB welche ein paar n tzliche Prozeduren beinhal tet wie z B die Prozedur centerdialog die ein Dialogfenster auf dem Bildschirm zentriert Das Importieren der Biblio theken erfolgt als aller erstes im Programm mit Hilfe der INCLUDE Anweisung rem Importieren von Bibliotheks Hilfsfunktionen inelude mathe include dialog rb Da die Funktionen decimal_to_base und base_to_decimal jeweils als zweiten Parameter einen String mit allen Ziffern des jeweiligen Zahlensystems erwarten wobei die Anzahl der Ziffern gleichzeitig die Basis des Zahlensystems in wel ches umgerechnet werden soll definiert deklarieren und f llen wir ebenfalls am Anfang unseres Prototype
37. Byte angef gt wird Da eine 32Bit Zahl zur ckgegeben wird sollten 15 Stellen reichen 15 Zeichen 1 Null Byte Die Adresse des Speicherbereichs wird in die Variable geschrieben auf die die Variable Output zeigt Output LocalAlloc LPTR 16 Pr fen ob die Speicheranforderung erfolgreich war Wenn z B nicht genug Speicher zur Verf gung stand wird NULL zur ckgegeben In diesem Fall ebenfalls hier abbrechen mit Fehler 1 s o Dieser Fall sollte normalerweise ebenfalls nicht eintreten if Output NULL return 1 Jetzt kommt die klassische Ausgabe Was alles wie mit sprintf geht sollte bekannt sein sonst K amp R lesen GetTickCount klappt lt WinAPI immer daher ist keine Pr fung auf evtl Fehler n tig und GetTickCount kann direkt in sprintf eingesetzt wer den sprintf Output 3d GetTickCount Das war s Funktion beenden 0 steht hier f r Erfolgreich s o return 0 Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 65 von 138 h Benutzerhandbuch Hier die zweite Funktion rbxCreateWindowList rbxCreateWindowList erzeugt eine Liste der berschriften aller sichtbaren Fenster Die Listenelemente werden jeweils durch die als Parameter bergebene Zeichenkett getrennt Zum Abrufen der Fensterliste wird die Windows Funktion EnumWindows verwendet die f r jedes Fenster eine sogenannte
38. Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 77 von 138 k5 Sprachreferenz weiter2 echo Weiterhin gute Fahrt mit Ihren geschwindigkeit Bemerkungen Der Name des Labels muss bei GOTO ohne das Zeichen angegeben werden Es ist nicht erlaubt mit einem GOTO Sprung aus einer oder in eine Prozedur zu springen Ist dies der Fall bricht die Scriptausf hrung mit einer entsprechenden Fehlermeldung ab GOTO Spr nge in andere Include Dateien sind m glich Spr nge k nnen in alle Richtungen ob vorw rts oder r ckw rts im Script durchgef hrt werden Verwenden Sie die GOSUB Anweisung um eine Sprungmarke als Unterprozedur aufzurufen GOSUB RESUME Syntax GOSUB label label RESUME Beschreibung GOSUB arbeitet hnlich wie GOTO Hier wird zu einem Label gesprungen welches hier als Unterprogramm Sub ange sehen wird Sobald eine RESUME Anweisung auftritt wird das Script hinter dem letzten GOSUB Aufruf fortgesetzt Dies erm glicht usserst komplexe Programmkonstruktionen GOSUB RESUME Konstruktionen lassen sich beliebig inein ander verschachteln z B lassen sich aus Subs wiederum andere GOSUB Spr nge durchf hren Seit RapidBATCH 5 0 ist es auch m glich variable Werte an GOSUB zu bergeben d h der Name des Labels welches angesprungen werden soll kann eine Variable oder auch ein aus variablen und statischen Werten zusammengesetzter Label Name s
39. Das Setzen bzw Auslesen des Status ob das Widget gehakt ist ist quivalent zu der des OPTION Widgets Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 55 von 138 3 Benutzerhandbuch Entry 1 Entry 2 Entry 3 LIST LIST_SORTED LIST_MULTI LIST_MULTISORTED LIST Widgets sowie deren Derivate LIST_SORTED LIST_MULTI und LIST_MULTISORTED stellen ein Listenauswahlfeld wie beim build in LISTBOX Dialog als Widget bereit LIST Widgets stellen ihre Eintr ge so dar wie sie angegeben wurden LIST_SORTED Widgets sortieren die Eintr ge alphabetisch Zum F llen bzw Auslesen der LIST Widgets wird das ITEMS Attribut verwendet welches eine Liste von Eintr gen die je weils durch Pipe Zeichen von einander getrennten sind verwendet Der ausgew hlte Eintrag wird mit dem SELECTION Attribut gelesen bzw bestimmt LIST_MULTI und LIST_MULTISORTED Widgets unterscheiden sich von den LIST und LIST_SORTED Widgets insofern dass anstatt eines einzelnen Listeneintrags gleich mehrere oder alle Eintr ge selektiert werden k nnen Das SELECTION bzw SELINDEX Attribut gibt in diesem Fall eine Liste an selektierten Eintr gen zur ck COMBO COMBO Widgets stellen eine Mischung aus INPUT Widget und LIST Widget dar Es kann ein Text in das Eingabefeld editiert werden oder aus der Dropdown Box die durch Dr cken des kleinen Buttons rechts neben dem Eingabefeld aufklappt aus
40. Dialog Designer ein Werkzeug zum visuellen komfortablen erstellen von individuellen Dialogfenstern in RapidBATCH oder der HTML Script Code Highlighter der den n tigen HTML Code f r die farbliche Hervorhebung von RapidBATCH Script Code generiert e Komplett neu geschriebenes ausf hrliches Anwenderhandbuch in Form einer Online Hilfe mit Alphabetischer und nach Sachthemen geordneter Befehls und Funktionsreferenz sowie farblich hervorgehobenen Programm beispielen und Listings und Deutschsprachigen Screenshots e Komplett Sprachunabh ngiges Softwarepaket Alle RapidBATCH Entwicklungstools bis auf den Compiler sind jetzt komplett auf Deutsch verf gbar e Es kann jetzt jedes beliebige Icon mit einer compilierten RapidBATCH Scriptdatei gelinkt werden auch Icons im Windows XP Stil mit 256 Farben und einer Gr e von 64x64 Pixel e Weiterhin ist RapidBATCH 5 auf allen Windows Versionen ab Windows 95 lauff hig wurde aber speziell f r den Einsatz auf Windows 2000 und Windows XP optimiert Mit diesen vielen Neuerungen wird RapidBATCH jetzt zu einer Plattform zur Entwicklung und L sung unterschiedlichster Aufgaben und Software Probleme Umsteigern von RapidBATCH 4 wird empfohlen trotz der fast 100 tigen Ab w rtskompatiblit t zu RapidBATCH 4 4 das komplette neue Handbuch von Anfang an durchzulesen Dort sind zahlrei che Tipps und Details zu den neuen Spracherweiterungen von RapidBATCH enthalten die Sie in Zukunft unbedingt beachten und auch a
41. Dl O TEE 72 DELFILE use 99 DELREGKEY 108 DELREGVAL 111 DISKFREE 106 DISKSIZE 106 DISKTYPE 4 106 ECHO unsereernsersersnsereeenser 89 EDITBOX nen 92 a Ee E T 72 EESEIF 4 2s42492524409304054 8230 72 ENDFUNG 00 76 ENDIF oeaan er 72 ENDPROC niise 75 EXT ne AT 81 FILEEXISTS 101 FILESIZE sisinta 100 FINDFILES 103 FOLDERBOX n 94 FUNC nnansnssssisesssisssesesssann 76 GETASC He 84 GETCHARAT scssi 85 GETEHR nsean 84 GETDIALOG 123 GETENV u a 107 GETFILE a0 102 GETFILEATT 104 GETFILEDATE 105 GETFILETIME 105 GETLEN nssHs Rs 84 GEIPOS en 84 Seite 138 von 138 GETREGVAL u nee 108 GET TOK inoaii 85 GOSUB niit 78 GOTO niainisisinieiaaeaina 77 HALT 79 Fansite 72 INCLUDE een 79 INCLUDE_ONCE 79 INFOBOX iiciin 96 INPUTBOX een 91 LETDIALOG 2 117 LETENY n 107 LETRILEANT 2 104 LETFILEDATE 105 LETFILETIME 105 LETREGVAL cenie 109 LISTBOX iienaa 93 LOCKWORKSTATION 114 ME 107 MKDIR u 98 MOUSEEVENT 113 MSGBOX uns 90 NEWDIALOG 116 NEW FIL Eiir 99 NEWREGKEY s 108 OPEN Huren 99 PENBOR uHuen 95 PROG msn 75 PUTRILE sus 10
42. Eingabefeldes INPUT 1 EDIT 1 EDIT_LINEWRAP 1 PWD 1 COMBO 1 STATIC_COMBO 1 Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 121 von 138 ul Sprachreferenz EVENT_CLOSE Ereignis beim Schlie en eines Dialoges DIALOG 0 EVENT_SIZE Ereignis beim Vergr ern Verkleinern eines DIALOG 0 Dialoges EVENT_MOVE Ereignis beim Verschieben eines Dialoges DIALOG 1 EVENT_MOUSEMOVE Ereignis beim Bewegen der Maus auf einem DIALOG 1 Dialogfenster EVENT_OK Ereignis beim Dr cken von Enter auf einem DIALOG 1 Dialog EVENT_CANCEL Ereignis beim Dr cken von Esc auf einem DIALOG 1 Dialog Beispiele rem ACHTUNG rem Dieses Beispiel ist nicht lauff hig da die Widgets die hier rem HSN rem Attribute au angesprochen werden Das Beispiel soll lediglich demonstrieren f Widgets gesetzt und bergeben werden noch nicht erzeugt worden sind wie bestimmte editieren new_line Elementen ttwoch Donnerstag Freitag rem Setzen ndern der Widget Position und Gr e letdiaklog myDialcgi sn PBOSTERTOND 182300 IeiedialogemyDHaNlog Bulekeniar M PROS TONE E OOMOO rem Setzen von berschriften Beschriftungen letdialog myDialog CAPTION Dies ist ein Dialogtitel letdialog myDialog Butt
43. Enth lt die Versionsnummer der RapidBATCH Version mit der das entsprechende Script ausgef hrt wird z B 5 0 Dies erm glicht es z B in interpretierten Scripts verschiedene Quellcode Abschnitte zu verwenden Die Variable RB_Pro gibt Auskunft ob es sich bei der verwendeten RapidBATCH Version um eine Professional Edition Wert 0 oder Standard Edition Wert 1 handelt ScreenWidth ScreenHeight Beschreibung Geben Auskunft ber die aktuelle Aufl sung ScreenWidth enth lt die Anzahl der horizontal verf gbaren Bildschirmpixel ScreenHeight enth lt die Anzahl der verti kal verf gbaren Bildschirmpixel Mit diesen Werten k nnen z B Dialoge wie EDITBOX oder LISTBOX auf den gesamten Bildschirm maximiert werden oder aber auch individuelle Dialoge zentriert werden Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 136 von 138 k5 Sprachreferenz std_sep Beschreibung Die Variable std_sep enth lt den Standard Listenseparator Dies ist ein Zeichen welches bei Listen die z B bei LISTBOX oder OPENBOX bergeben werden als Trennzeichen f r die einzelnen Elemente verwendet wird std_sep enth lt defaultm ig ein Pipe Zeichen Es kann immer nur ein einzelnes Zeichen als Separator definiert werden wenn ein String mit mehreren Zeichen an std_sep bergeben wird wird nur das erste Zeichen als Separator verwendet time Beschreibung Die aktue
44. J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 90 von 138 k5 Sprachreferenz Icon Beispiel Icon Beispiel Icon Beispiel Style Style Style i 7 Icon Style 16 2 j Icon Style 32 48 A Icon Style 48 Icon Style 64 Beispiele rem Einfaches Meldungsfenster MSGBOX Anweisung msgbox Hallo Herzlich Willkommen 64 rem Meldungsfenster mit Ja Nein Abbrechen Option MSGBOX Funktion msgbox antwort Script beenden M chten Sie die Datei berschreiben yesnocan cel if antwort 6 echo Sie haben JA gew hlt elseif antwort 7 echo Sie haben NEIN gew hlt else echo Sie haben ABBRECHEN gew hlt endif Bemerkungen In RapidBATCH 2 0 2 2 und 3 0 hiess diese Anweisung noch ECHOBOX Alternativ kann auch weiterhin ECHOBOX benutzt werden MSGBOX ist jedoch die moderne Variante ab RapidBATCH 4 0 INPUTBOX PWDBOX Syntax INPUTBOX Eingabe Titel Eingabeaufforderung Default Wert PWDBOX Eingabe Titel Eingabeaufforderung Default Wert Beschreibung INPUTBOX zeigt einen einfachen Dialog zur Eingabe eines Wertes an Die Funktion erwartet einen Dialogtitel einen Eingabeaufforderungstext sowie einen Default Wert der im Eingabefeld vorgeblendet wird Wenn der OK Button im Dialog gedr ckt wurde ist der R ckgabewert der Wert bzw Text der im Eingabefeld eingege ben wurde Wird der CANCEL Button gedr ckt so liefert die Funkt
45. Kom mandozeile zu bergeben Dies darf nat rlich auch bei RapidBATCH nicht fehlen Die Variable command enth lt alle Kommandozeilenparameter die hinter dem Dateinamen des Script Files wenn das Script mit dem Interpreter ausgef hrt wird bzw bei compilierten Scripts alle an die EXE Datei bergebenen Kommandozeilenparameter bergeben wurden Bestes Beispiel stellt folgendes Script dar Es gibt einfach den Inhalt der Variablen command in einem Meldungsfenster aus Im RapidBATCH Builder k nnen Sie zum direkten Testen Ihrer Scripts die Funktion Setze command im Men Script benutzen echo Das hier wurde diesem Script mitgeschickt command end Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 48 von 138 u Benutzerhandbuch RapidBATCH 5 C jmksfirb5 samplesicommandline rb DEU ra aAxXQ gt g echo Das hier wurde diesem Script mitgeschickt command end Script Kommandozeilenparameter setzen E command Das hier ist ein Text der bergeben wird Sie m chten einen beliebigen Wert f r jedes andere Windows Programm zug nglich machen Mit RapidBATCH ist auch dies kein Problem Durch Zuweisung eines beliebigen Wertes an die Variable clipboard wird dieser sofort in die Win dows Zwischenablage kopiert Ein Auslesen von clipboard erm glicht das sofortige Auslesen des Zwischenablagen Inhaltes Ein einfaches Beispiel welches sogar den
46. Speicherkapazit t eines Datentr gers in Bytes zur ck Beispiele ensktreewjlleE le echo Es sind noch df Bytes freier Festplattenspeicher auf Laufwerk C verf g bar diskfree ds C echo Laufwerk C hat ein gesamtes Volumen von ds Bytes end Bemerkungen Um den freien Speicher in Kilo Mega Giga oder Terabyte auszugeben muss der Wert jeweils durch 1024 geteilt werden F r Kilobyte teilt man 1 mal durch 1024 f r Terabyte 4 mal durch 1024 usw DISKTYPE Syntax DISKTYPE Laufwerkstypen ID Laufwerksbuchstabe Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 106 von 138 MR 5 Sprachreferenz Beschreibung Gibt Auskunft ber den Typ eines Speichermediums Der R ckgabewert ist einer der folgenden Werte 0 Unbekanntes Medium 1 Wechselspeicher 2 Fixiertes Laufwerk z B Festplatte 3 Remote Laufwerk 4 CD ROM 5 RAM Disk z B USB Stick Beispiele disktype type C if type 0 type unbekanntes if type 1 type Wechselspeicher if type 2 type fixiertes if type 3 type Remote if type 4 type CD ROM if type 5 type RAM Disk echo Laufwerk C ist ein type Medium end Bemerkungen keine GETENV LETENV Syntax GETENV Wert Umgebungsvariable LETENV Umgebungsvariablenzuweisung Beschreibung GETENV erm glicht das
47. Wert 3 test 4 Array Wert 4 rem Aufruf der Prozedur ausgabe_array ausgabe_array test end ausgabe_array berechne new_line new_line new_line new_line J E E Pppp a E a or mit bergabe eines Array Pointers array i new_line Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 75 von 138 k5 Sprachreferenz Bemerkungen Um eine Funktion zu implementieren verwenden Sie FUNC ENDFUNC Mehrere Prozeduren und Funktionen k nnen als Bibliothek in eine Script Datei implementiert werden die dann mit Hilfe der INCLUDE Anweisung in andere RapidBATCH Scripts die diese Prozeduren verwenden eingebunden wird Eine Prozedur kann nicht vor ihrer Definition aufgerufen werden RET kann nicht ausserhalb einer Prozedur oder Funktion verwendet werden FUNC ENDFUNC Syntax FUNC Funktionsname Parameter Liste Anweisungsblock RET R ckgabewert Anweisungsblock ENDFUNC Beschreibung Definiert eine benutzerdefinierte Funktion Funktionen werden implementiert um mehrere RapidBATCH Anweisungen zu einer neuen Funktion zusammenzufas sen die im Script verwendet werden kann Eine Funktion kann einen beliebigen Namen sowie eine optionale und belie bige Anzahl an Parametervariablen besitzen die beim Aufruf der Funktion als lokale Funktionsvariablen behandelt wer den Mit Hilfe der Pointerfunktionalit t k nnen auch Ze
48. aber durch aus vorkommen dass ein bestimmtes Muster bei mehrfachen Generierungen entsteht da es sich bei RANDVAR um einen Pseudo Zufallszahlengenerator handelt Als Basis f r die Zufallszahlen verwendet RANDVAR die Systemunhrzeit Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 88 von 138 k5 Sprachreferenz Build in Dialoge ECHO Syntax ECHO Meldungstext Beschreibung Zeigt ein einfaches Meldungsfenster mit OK Button an RapidBATCH Echo J Einfache Ausgabe Beispiele echo Hello World a FET LE echo Ergebnis ist a end Bemerkungen Der Standard Text f r die Titelzeile von ECHO Meldungsfenstern kann ber die Variable Echo_Title ge ndert werden Verwenden Sie die MSGBOX Anweisung um ein individuell gestaltetes Messagebox Fenster bereitzustellen CONFIRM Syntax CONFIRM Auswahl Meldungstext Beschreibung Die CONFIRM Funktion ist eine Abk rzung f r ein Meldungsfenster mit JA NEIN Option Dr ckt der Benutzer JA so gibt die Funktion den Wert 0 andernfalls 1 zur ck RapidBATCH Confirmation 2 T M chten Sie das Script beenden Beispiele repeat confirm quit M chten Sie das Script beenden until quit true echo Script beendet end Bemerkungen Der Standard Text f r die Titelzeile von CONFIRM Meldungsfenstern kann ber die Variable Confirm_Title ge ndert werden Verwenden Sie die MSGBOX Anweisun
49. abgebildeten Quelltext ein 5 RapidBATCH 5 C jmksflirb5lscripts hallo1 rb Datei Bearbeiten Script Werkzeuge Hilfe DEU noca gt g echo Hallo ich bin ein RapidBATCH Script en Eingabe des Script Codes im RapidBATCH Builder Speichern Sie anschlie end das Script in einem Verzeichnis Ihrer Wahl unter dem Dateinamen HELLO RB oder auch einem beliebigen anderen Dateinamen ab Nun kann das Script gestartet werden indem Sie F5 dr cken oder den But ton Script starten in der Toolbar anklicken Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 7 von 138 k5 Benutzerhandbuch RapidBATCH 5 C jmksf rb5 scripts hallo1 rb DEU rer aa XxQ echo Hallo ich bin ein RapidBATCH Script end RapidBATCH Echo 1 Hallo ich bin ein RapidBATCH Script Ausf hrung des Scripts aus dem RapidBATCH Builder heraus Herzlichen Gl ckwunsch zu Ihrem ersten lauff higen Script in RapidBATCH Wenn Sie im Besitz der RapidBATCH Professional Edition sind k nnen Sie Ihr Script durch Auswahl des Men punktes Script und dann Compilieren in eine ausf hrbare EXE Programmdatei bersetzen Diese EXE Programmdatei kann als eigenst ndiges Programm auf jedem PC mit einem Betriebssystem ab Windows 95 ausgef hrt werden Das Pro grammicon der EXE Datei ist mit einem individuellen Icon austauschbar welches im Compiler Optionsdialog ausgew hlt werden kann Script compilieren
50. auch hier wieder optional ist rem Deklarieren eines Arrays mit 10x10x10 Dimensionen dec meinArray t NEON meinArray n 3 2795 Heo Weorlan meinArray 1 1 2 Wert an Index 2 meinArray 1 1 3 Wert an Index 3 meinAerayzs Ua 2a Anderer Wert an Index 1 Il meinArray 1 2 2 Anderer Wert an Index 2 meinArray 1 2 3 Anderer Wert an Index 3 RapidBATCH bietet an dieser Stelle auch noch eine Besonderheit die bisher keine andere Programmiersprache weltweit aufweist Werte k nnen in JEDE Dimension eines Arrays gespeichert werden Ein konkretes Beispiel rem Auff llen des Arrays in verschiedenen Dimensionen meinArray Basis meinArray 1 Erste Dimension Wert 1 meinArray 1 1 Zweite Dimension Wert 1 meinArray 1 1 1 Dritte Dimension Wert 1 meinArray Bun as Dritte Dimension Wert 2 meinArray 1 2 Zweite Dimension Wert 2 meinArray 2 Erste Dimension Wert 2 rem Ausgabe des Arrays echo meinArray echo meinArray 1 echo meinArray 1 1 echo meinArray 1 1 1 echo meinArray CIm A 2n echo meimArray u 2n echo meinArray 2 Speziell f r die Wiederverwertung bzw Aufl sung nicht mehr ben tigter Arrays und deren Speicherressourcen gibt es in RapidBATCH 5 auch eine M glichkeit ein Array komplett zu l schen z B damit es neu aufgef llt werden kann Die RESET Anweisung RESET tut genau das Gegenteil v
51. auf Variablen und nat rlich auch auf Arrays uneingeschr nkt zugreifen d h Werte lesen und schreiben Obwohl der Pointer eine lokale Variable ist kann man ber diesen globale Variablen oder auch die lokalen Variablen einer Prozedur ver ndern welche die Prozedur mit dem Pointer aufgerufen hat Es kommt ganz darauf an worauf der Pointer zeigt Ein Parameter wird bei der Prozedurdeklaration mit einem Sternchen beginnend als Pointer deklariert Folgendes Beispiel Script zeigt wie man einen Pointer in einer Prozedur deklariert bergibt und verwendet proc neuer_wert a echo Der Wert von a ist a a Das ist der neue Wert der ber den Pointer geschrieben wurde echo Der Wert von a ist jetzt a endproc Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 22 von 138 G Benutzerhandbuch test Hello World echo Der Wert von test rst testi neuer_wert test echo Der Wert von test ist jetzt test end Pointer sind auch die einzige M glichkeit ein Array in einer Prozedur zu verarbeiten Bestes Beispiel ist die Prozedur viewArray aus der RapidBATCH Bibliothek ARRAY RB rem Prozedur viewArray zur Anzeige eines Arrays proc viewArray array dec il text wE llarcays TOn ZZ ON se repeat kl a ar text Index i array i new_line une Tal lasse ON echo text endproc rem Array erzeugen
52. bezeichnet sie stellen so zusagen die Kinder des Dialogs myDialog dar da sie auf myDialog angezeigt und diesem Basisfenster hierarchisch untergeordnet sind Die Angabe der Pixelkoordinaten ist bei allen Child Widgets relativ zur linken oberen Ecke des Fensters Nachdem wir nun die Widgets erzeugt haben setzten wir f r diese verschiedene Werte in unserem Fall bekommt das Dialogfenster den Titel Hello World der Button die Beschriftung Und los und das Textfeld den Text Dies ist ein Text rem Setzen der Werte Eigenschaften letdialog myDialog CAPTION Hello World letdialog myDialog Eingabe TEXT Dies ist ein Text letdialog myDialog Los CAPTION Und amp los Alle Werte werden mit Hilfe der Anweisung LETDIALOG gesetzt LETDIALOG erwartet als Parameter das Label des Widgets bei dem eine Eigenschaft gesetzt werden soll die Bezeichnung der Eigenschaft die gesetzt werden soll sowie den entsprechenden Wert Der Eigenschaftsbezeichner CAPTION setzt die Beschriftung eines Widgets die Eigen schaft TEXT den Text im Editierbereich von Eingabefeldern Welche Eigenschaften unterst tzt werden ist von Widget zu Widget unterschiedlich Ein Listenfeld kann beispielsweise keine Beschriftung CAPTION haben ein Dialogfenster kann keine Liste eines Listenfeldes aufnehmen Es ist also vom Typ des Widgets abh ngig was wie gesetzt wird Wir werden jedoch sp ter genauer darauf eingehen Mit der Zeile ie
53. das Pipe Zeichen Die X und Y Koordinaten sind nur bei Dialogfenstern relativ zur linken oberen Ecke des Anzeigebildschirms Bei allen Widgets die auf einem Dialogfenster erzeugt werden sind die X und Y Koordinaten relativ zur linken oberen Ecke des jeweiligen Basisdialogs Das Widget Label muss bei allen Childelementen mit dem Label des Basisdialogs auf dem das Childelement erzeugt werden soll gefolgt von einem Doppelpunkt beginnen Ein Widget Label f r die Erzeugung eines Childelements auf dem Dialog Basisdialog w re zum Beispiel Basisdialog Childelement Folgend eine Liste an m glichen Werten die bei NEWDIALOG als Dialogelement Typ angegen werden k nnen Widget Typ Beschreibung DIALOG Dialogfenster BUTTON Button mit Text IMAGEBUTTON Button mit Bild INPUT einzeiliges Eingabefeld PWD einzeiliges Passwort Eingabefeld EDIT mehrzeiliges Eingabefeld EDIT_LINEWRAP mehrzeiliges Eingabefeld mit automatischem Zeilenumbruch LABEL statisches Textlabel OPTION Optionsfeld RADIO Radiobutton LIST Listenelement LIST_SORTED Sortiertes Listenelement LIST_MULTI Listenelement mit Mehrfachauswahl LIST_MULTISORTED Sortiertes Listenelement mit Mehrfachauswahl PROGRESS Fortschittsbalken Progressbar COMBO Combobox STATIC_COMBO Combobox mit festen Werten IMAGE statisches Bitmap GROUP statische Groupbox Beispiele rem Erzeugung eines Dialogfenster
54. das Zeichen an der gegebenen Position im gegebenen Stringausdruck zur ck Beispiele text Hello World rem 12345678901 getcharat chr text 5 echo Das Zeichen an Position 5 im String text ist ein chr end Bemerkungen keine Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 85 von 138 k5 Sprachreferenz UPVAR LOWVAR Syntax UPVAR Ergebnis Ausdruck LOWVAR Ergebnis Ausdruck Beschreibung UPVAR wandelt alle Zeichen eines Stringausdrucks in Grossbuchstaben um LOWVAR wandelt alle Zeichen eines Stringausdrucks in Kleinbuchstaben um Bereits gross bzw kleingeschriebene Zeichen werden von der jeweiligen Funktion ignoriert Beispiele text Ein Test upvar utext text lowvar ltext text echo text in Gro buchstaben utext echo text in Kleinbuchstaben U itext end Bemerkungen keine TRIMVAR Syntax TRIMVAR Ergebnis Ausdruck Beschreibung Entfernt f hrende und nachfolgende Leerzeichen aus einer Zeichenfolge und gibt diese zur ck Beispiele text RapidBATCH cechom or ECS a trimvar trim text text echon Hermes er end Bemerkungen keine COPYVAR Syntax COPYVAR Teilstring Stringausdruck Start L nge Beschreibung COPYVAR gibt einen Teilstring aus einem String zur ck Der Start Parameter definiert dabei die Position des ersten Zeichens ab dem der T
55. dass einfach die neu hinzugekommenen Daten zur Datei selbst hinzugef gt werden Daher bitte um diesen Effekt zu vermeinden die entsprechenden Stellen vorher manuell mit NUL oder einem anderem ASCII Zeichen auff llen Wenn Sie mit PUTFILE in eine bestehende Datei schreiben werden alle Zeichen die Sie an einer bestimmten Byteposi tion angeben einfach in die Datei geschrieben d h vorhandene Zeichen werden einfach berschrieben Es erfolgt also kein append Anh ngen von Daten denn dies w re ja f r bin re Dateiverarbeitung nicht angebracht bzw ohne gr e ren Sinn Dateien werden ja automatisch erweitert wenn Daten ber das Dateiende hinaus geschrieben wurden wie wir es im obigen Beispiel gemacht haben Das Auslesen einer Bin rdatei funktioniert so hnlich wie das Schreiben hierzu benutzen wir gegens tzlich zu PUTFILE die Funktion GETFILE GETFILE erwartet als Funktionsparameter den Pfad der zu lesenden Datei den Anfangs Offset sowie die Anzahl der Bytes die vom Anfangs Offset aus gelesen werden Wenden wir nun GETFILE auf unsere im obi gen Beispiel erstellte Datei BINARY TXT an Zu beachten sei auch hier dass die R ckgabe von GETFILE eine Liste an ASCII Codes ist die wir zuerst wieder mit der Funktion GETCHR zu entsprechenden Zeichen umwandeln m ssen was aber kein gr eres Problem darstellt rem Daten lesen getten data M PINaAry EAEn ONE Ser cho Gelesene ASCII Liste data rem ASCII Codes in ASCII Ze
56. des neuem Speichermanagements und des berarbeitetem Frameworks 90 Abw rtskompatibel mit RapidBATCH 4 4 RapidBATCH 4 4 Scripts k nnen mit nur minimalster nderung in einer RapidBATCH 5 0 Scriptumgebung ausgef hrt werden Jetzt mit Unterst tzung echter Arrays mit bis zu 9 Unterdimensionen Ein Array kann dynamisch aus jeder Ra pidBATCH Variable erzeugt werden Werte k nnen in jede Array Dimension und in jedem Index hinterlegt wer den auch wenn diese Array Dimension eine weitere Unterdimension besitzt Voll dynamische interne Speicherverwaltung Alle internen Funktionalit ten die in RapidBATCH 4 noch sta tisch waren wurden jetzt komplett dynamisiert Variablen und Arrays k nnen mit der neuen RESET Anweisung zur ckgesetzt d h entleert werden Auch das zur cksetzen einzelner unterdimensionen eines Arrays ist m glich Benutzerdefinierte Prozeduren und Funktionen k nnen jetzt in RapidBATCH implementiert und verwendet wer den Dies erm glicht nun echte prozedurale Programmlogiken mit verschachtelten Prozeduraufrufen und Re kursionen Variablen k nnen ber das Call By Value oder ber das Call by Reference Verfahren bergeben werden Die sechs RapidBATCH Operatoren und k nnen jetzt berall in Strings angegeben werden aus serdem werden jetzt Klammern unterst tzt um Formeln schneller und effizienter definieren zu k nnen Punkt vor Strichrechnung in allen mathematischen Ausdr cken ab RapidBATCH 5 1 0
57. die Variablen EditBox_Ok und EditBox_Cancel gesetzt werden Wird die Beschriftung eines Buttons auf einen Leerstring gesetzt wird der Button aus dem Dialog ausgeblendet Die Position des Dialogs kann mit Hilfe der Variablen EditBox_X und EditBox_Y ver ndert werden Hat EditBox_X und oder EditBox_Y den Wert O wird der Dialog automatisch jeweils horizontal oder vertikal zentriert dies ist die Stan dard Einstellung Die Defaultgr e des Dialogs l sst sich ber die Variablen EditBox_Width Breite und EditBox_Height H he setzen Die Angabe bei Positionierungs Dimensionswerten erfolgt in Pixel Das Dialog Icon kann global f r alle Dialoge ber die Variable app_icon auf eine externe ICO Datei gesetzt werden LISTBOX Syntax LISTBOX Eintrag Titel Elementenliste Beschreibung Zeigt einen Listenauswahldialog an der dem Benutzer das W hlen von einem oder mehreren Eintr gen aus einer vor gegebenen Liste an Elementen erm glicht Als Parameter erwartet diese Funktion einen Dialogtitel sowie eine Liste an Elementen die zur Auswahl im Listenfeld angezeigt werden Jedes Element wird dabei durch das in der Variablen std_sep definierte Separationszeichen ge trennt dies ist normalerweise das Pipe Zeichen R ckgabewert der Funktion ist der gew hle Listeneintrag Klickt der Benutzer den Schlie en Button des Dialogfensters oder dr ckt er auf OK ohne etwas auszuw hlen wird ein Leerstring zur ckgegeben
58. eine benutzerdefinierte Prozedur Prozeduren werden implementiert um mehrere RapidBATCH Anweisungen zu einem neuen Befehl zusammenzufassen der im Script verwendet werden kann Eine Prozedur kann einen beliebigen Namen sowie eine optionale und beliebige Anzahl an Parametervariablen besitzen die beim Aufruf der Prozedur als lokale Prozedurvariablen behandelt werden Mit Hilfe der Pointerfunktionalit t k nnen auch Zeiger auf Arrays und Variablen an die Prozedur als lokale Variablen bergeben und verarbeitet werden Mit der RET Anweisung kann eine Prozedur vorzeitig beendet werden Hingegen zu Funktionen ist bei in Prozeduren verwendeten RET Anweisungen kein R ckgabewert erlaubt Eine Prozedur kann wiederum andere Prozeduren Funktionen oder sich selbst rekursiv aufrufen Prozedurdeklarationen in Prozeduren sind nicht erlaubt Beispiele rem Implementation der Prozedur proc berechne a b dec text text a b text al bl text al bl text a b text a bl echo text endproc rem Aufruf der Prozedur berechne berechne rem Implementation der Prozedur 100 151 proc ausgabe_array array dec i text if larray O On Tret repeat Est sr Yard text Index il until i array 0O echo text endproc test 1 Array Wert 1 test 2 Array Wert 2 test 3 Array
59. erh lt die resultierende Datei TEST TXT folgenden Inhalt Das ist ein Test Und jetzt sind wir in der zweiten Zeile So denn Das ist das Ende der Datei Wollen wir nun die Datei wieder auslesen verwenden wir die Funktion READFILE READFILE ist ebenfalls nur zum Lesen von Textdateien geeignet da sie eine Datei zeilenweise ausliest Parameter sind der Dateiname der zu lesenden Datei sowie eine Zeilenangabe R ckgabewert ist der Inhalt der angeforderten Zeile Folgendes Script liest die erste Zeile unserer gerade erstellten TEST TXT aus readfile zeile test txt 1 echo Erste Zeile von TEST TXT zeile Wollen wir die Datei nun komplett Zeile f r Zeile lesen ist ein so genannter Zeilen Z hler notwendig Wir verwenden hier die Variable i Wird bei READFILE eine Zeile angefordert die nicht mehr existiert so ist der R ckgabewert der Funktion der Wert EOF was soviel bedeutet wie End Of File Die Abbruchbedingung f r unsere Ausleseschleife ist also der Vergleich ob zeile den Wert EOF erh lt womit wir nun folgendes Script erhalten Gi v0 Cepeda rem i inkrementieren erh hen Eci ar a rem Zeile i lesen readfile zeile test txt i rem Ausgabe der Zeile echo nalen zone ee u Z until zeile EOF READFILE kann auch eine Datei in einem Rutsch einlesen also die komplette Textdatei zur ckgeben Diesen Effekt erh lt man wenn man als Zeilenindex eine Zahl kleiner oder gleich
60. im Hintergrund durchgef hrt wurden Der Script Programmierer ist daher f r die rechtzeitige Ein bzw Ausblendung der Meldung selbst verantwortlich Der INFOBOX Dialog wird als Vordergrundfenster vor allen anderen Anwendungen auf dem Bildschirm angezeigt und l sst sich vom Benutzer weder verschieben noch in den Hintergrund bringen Als Parameter erwartet diese Anweisung den gew nschten Informationstext sowie den Modus ob die Information einge blendet oder ausgeblendet werden soll wobei O oder die build in Konstante show f r einblenden Dialog anzeigen und 1 oder hide f r ausblenden Dialog verstecken steht Selbiges kann auch durch Setzen der Variablen Info Box_Enabled auf den gew nschten Status erzielt werden Bitte warten Beispiele rem INFOBOX einblenden infobox Das Seripe wird in 5 Sekunden fortgesetzte show rem 5 Sekunden warten wait 5000 rem INFOBOX wieder ausblenden InfoBox_Enabled hide Bemerkungen Die Position des Dialogs kann mit Hilfe der Variablen InfoBox_X und InfoBox_Y ver ndert werden Hat InfoBox_X und oder InfoBox_Y den Wert 0 so wird der Dialog automatisch jeweils horizontal oder vertikal zentriert dies ist die Standard Einstellung Die Defaultgr e des Dialogs l sst sich ber die Variablen InfoBox_Width Breite und InfoBox_Height H he setzen Die Angabe bei Positionierungs Dimensionswerten erfolgt in Pixel Copyright 2000 2006 by J M K S F Software
61. len eingabe ausgabe Tepede Fasz getcharat ch eingabe i getasc ch ch if ausgabe ausgabe std_sep ausgabe ch until i len clipboard ausgabe echo Der Text wurde als ASCII Liste dekodiert und in die Zwischenablage kopiert end Wir k nnten jetzt auch beispielsweise direkt an Byte Position 100 mit dem Schreiben der Datei fortfahren rem Text Und dies ist ein weiterer Peena 5857510 Belege S E text SoS riS E o O S ERS Kessel MSO OS S LOL aO e a puteikis m pinary exea NO CEE rem Text Bin r Schreibvorgang text 32 66 105 110 228 114 45 83 99 text 2 E02 eo ES ee ee text 12 519827 27037 7972 ZERO EROS B22 5 rem Da wir jetzt 24 Zeichen geschrieben haben rem m ssen wir ab Pos 100 24 weiterschreiben Steele Voimerzwyserer Vol 2a ex Diese Zeilen und Mengen an ASCIl Codewerten m gen vielleich im ersten Moment etwas chaotisch aussehen da wir hier auf reiner RapidBATCH Sprachbasis arbeiten Wenn Sie sp ter die Bin rfunktionen produktiv einsetzen wollen ist es nat rlich ratsam sich entsprechende Hilfsfunktionen zu programmieren die einem die Arbeit erheblich sparen k nnen und sich v llig individuell an die entsprechenden Einsatzumgebungen ab ndern lassen Wenn wir nun zus tzlich auch obige Zeilen ausgef hrt haben sieht die Datei wenn man sie in einem HEX Editor be trachtet so aus 000000 BE 55 6c 6c 6 f 20 57 6 72 6
62. mit diesem Operator verkn pften Bedingungen erfolgreich gepr ft wurden Beim Operator muss eine der beiden Bedin gungen oder auch beide das Ergebnis TRUE liefern Wird die Abbruchbedingung nicht erreicht endet die Ausf hrung des Scripts in einer Endlos Schleife Um eine Schleife vorzeitig zu verlassen verwenden Sie die Anweisung BREAK Die Anweisung CONT bewirkt dass die Schleife ohne vorherige Pr fung der bei UNTIL angegebenen Bedingung wie derholt wird CONT bewirkt damit einen R cksprung zum REPEAT der Schleife Beispiele tl 0 repeat Ei echot Durchlau u H ie until i 10 rem Schleifenbedingung mit Bedingungsverkn pfung lal 0 Pol 10 repeat jal e i iol 72 uncial gt aoee ao rem Schleife mit BREAK Anweisung il 0 repeat EN er A rem Verlassen der Schleife wenn i gr er 5 ist if i gt 5 break echon Durchlaur ee until i 10 rem Schleife mit CONT Anweisung il 0 repeat IE ae al rem Wenn i den Wert 5 enth lt Schleife wiederholen if i 15i cont echo Durchlauf i until i 10 Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 74 von 138 3 Sprachreferenz Bemerkungen REPEAT UNTIL Schleifen k nnen beliebig ineinander verschachtelt werden PROC ENDPROC Syntax PROC Prozedurname Parameter Liste Anweisungsblock RET Anweisungsblock ENDPROC Beschreibung Definiert
63. namen 1 Jan namen 2 Anna namen 3 Stefan namen 4 Matthias namen 5 Sebastian namen 6 Daniel namen 7 Uli namen 8 Andreas namen 9 Volker namen 10 Marco rem Array anzeigen viewarray namen end Nat rlich k nnen auch die Werte eines Arrays beliebig ver ndert werden Folgendes Script quadriert jeden Eintrag eines Arrays und schreibt ihn in das Array selbst zur ck rem Prozedur viewArray zur Anzeige eines Arrays proc viewArray array dee karte rE larcays YO ON Tet repeat El ar Nat text Index i array li new_line una a array 08 echo text endproc rem Prozedur array_zum_quadrat quadriert jeden Eintrag eines Arrays proe array zum quadrat array dee arte we eneeey ZN as e repeat Ele MAT fazeays ll arca ll unse ae array 0 endproc em Array erzeugen zahlen 1 5 Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 23 von 138 k5 Benutzerhandbuch zahlen 2 7 kzahtlenzzysiyn 27727 zah iken As SEn kzabten Soi 232 rem Werte ausgeben viewarray zahlen rem Alle Werte im Array quadrieren array_zum_quadrat zahlen rem Werte ausgeben viewarray zahlen end Ein Pointer kann auch als Pointer an eine weitere Prozedur bergeben werden In diesem Fall w rde RapidBATCH ber einen Pointer auf einen Pointer auf ein
64. nicht mehr weiterhin selbst auf und l st die Rekursion auf Da ja bei der Rekursion gleich mehrere Hundert oder gar Tausend Aufrufe der selben Funktion m glich sind befinden sich nat rlich alle Aufrufe in einem so genannten Stack Stapelspeicher im Hauptspeicher des Computers Durch die Abbruchbedingung werden nun alle aufgerufenen Funktionen wieder sorgf ltig abgearbeitet und beendet W rde man bei unserer Fakult ts Berechnungsfunktion keine solche Abbruchbedingung definieren w rde es irgend wann zu einem Speicher berlauf und damit zum Programm oder gar Systemabsturz kommen da sich die Funktion so lange aufruft bis kein Speicher mehr verf gbar ist Um den Verlauf der Rekursion unseres Fakult ts Scripts etwas Verst ndlicher zu machen k nnen wir auch noch ein paar ECHO Meldungen zur Programmverfolgung einf gen rekebene 0 rem Funktion fac zur Berechnung der Fakult t ene Bacs dec ergebnis rem Ausgabe der Rekursionstiefe echo Start in Rekursionsebene rekebene Parameterwert x rekebene 1 PEI 200 ergebnis 1 else rem Rekursiver Aufruf von fac fac ergebnis x alg ergebnis x endif rem Ausgabe der Rekursionstiefe rekebene 1 echo Ende in Rekursionsebene rekebene Ergebnis ergebnis ret ergebnis endfunc rem Erstaufruf der Funktion fac face fakult t 4 rem Ausgabe des Ergebisses echo Die Fakultate von 4A ise T Arakultat
65. prinzipiell nicht ver nderbar Das Dialog Icon kann global f r alle Dialoge ber die Variable app_icon auf eine externe ICO Datei gesetzt werden EDITBOX Syntax EDITBOX Eingabe Titel Text Style Beschreibung EDITBOX stellt einen Dialog zur Verf gung in dem mehrzeilige Texte editiert und betrachtet werden k nnen Die Funktion erwartet einen Dialogtitel einen im Editierfeld vorgegebenen Text und einen Anzeigemodus ber den Anzeigemodus l sst sich bestimmen ob der Text im Editierfeld ge ndert oder nur angesehen werden kann Wird der Wert 0 oder die quivalente Konstante writeable angegeben kann der Benutzer den Text editieren wird der Wert 1 oder readonly angegeben so kann der Benutzer den Text nicht ver ndern Wird im Dialog der OK Button gedr ckt so liefert die Funktion den Text aus dem Eingabefeld zur ck ansonsten einen Leerstring Bitte geben Sie einen Text ein Hier kann ein beliebig langer Text editiert werden Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 92 von 138 k5 Sprachreferenz Beispiele rem Einfache mehrzeilige Texteingabe editbox text Texteditor 1 Iwriteable echo text rem Verwendung der EDITBOX zur Textbetrachtung readonly Modus editbox text Textanzeige Dieser Text kann nicht editiert werden readonly echo text end Bemerkungen Die Beschriftung der Buttons OK und CANCEL kann ber
66. rde Die rekursive Programmierung bietet daher eine elegante Art und Weise wie man in sich ver schachtelte Operationen schnell und einfach durchf hren kann Diese darf in RapidBATCH nat rlich nicht fehlen Ein einfaches Beispiel f r ein rekursiv ablaufendes Programm ist die Berechnung der Fakult t Die Berechnung der Fa kult t ist mathematisch wie folgt definiert e Die Fakult t der Zahl 0 ist definitionsgem 1 e Die Fakult t einer ganzen Zahl die gr er als 0 ist ist das Produkt dieser Zahl mit der Fakult t der n chstklei neren ganzen Zahl Wir werden nun solch ein Script programmieren welches die Fakult t rekursiv berechnet Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 20 von 138 h Benutzerhandbuch rem Funktion fac zur Berechnung der Fakult t zung fac I dec ergebnis am PB ergebnis 1 else rem Rekursiver Aufruf von fac fac ergebnis x Tal ergebnis x endif ret ergebnis endfunc rem Erstaufruf der Funktion fac faci fakultati AE BemsAusgebendesErgenmsses echo Die Bakultst ven A ist 7 jzakulese end Das ist schon alles Wie man unschwer erkennen kann ruft sich die Funktion FAC rekursiv aus sich selber heraus auf allerdings mit dem dekrementierten um 1 verminderten Wert der Variablen x Abbruchbedingung in diesem Fall ist die Pr fung ob x den Wert 0 enth lt Ist dies der Fall ruft sich die Funktion
67. und GETCHARAT zur Ermittlung eines Zeichens an einer Position innerhalb eines Strings e Die Anweisung MSGBOX kann jetzt wahlweise als Funktion mit R ckgabewert oder als Anweisung aufgerufen werden Dies wurde Implementiert da die MSGBOX Anweisung durch die MSGBOX Funktion ersetzt werden soll aber trotzdem eine Kompatiblit t zu RapidBATCH 4 bestehen sollte e Erweiterte M glichkeiten f r GETTOK GETPOS REPLACEVAR und CNTVAR mittels der Variablen ca se_sensitivity bei denen jetzt auch zwischen Gross Kleinschreibung von Substrings unterschieden werden kann e Durch setzen der Variablen std_sep kann jetzt der globale Standard Separator der urspr nglich durch ein Pi pe Zeichen repr sentiert wurde ge ndert und damit auf jedes beliebige Zeichen gesetzt werden Er gilt da mit f r alle Anweisungen und Funktionen die den Standard Separator verwenden wie z B LISTBOX oder FINDFILES e Einf hrung der Pseudo Variablen null zur Zuweisung bzw Angabe irrelevanter Informationen die z B von Funktionen zur ckgegeben werden oder als nicht ben tigte Parameter spezifiziert werden e Neue Variablen true und false als Substitution f r 0 und 1 z B in Abfragen ist a true aussagekr ftiger als a 0 e Ermitteln des Titels des jeweils aktiven Vordergrundfensters mit Hilfe der Variablen active_window e Neue Variable app_icon zum ndern des Fenster und Programmicons f r build in Dialoge e Definition einer Defa
68. vordeklarierte Variablen 44444404snnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 48 Benutzerdefinierte Dialogprogrammierung 4usss444444nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnen 52 Erstellung van Dial gienstenaasssenne been 52 Die Widgets im berlick m aa E E OEE AEAEE REEERE EER AEAEE EE ESSERE EEEa T ESA ERK EENE 54 Entwicklung einer Beispielanwendung 44444444440Hnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnan nn 56 BIESDEL SChnittstelles es rss ses ee een aaa E ne In rEnaEe He Erree 63 Verwendung externer Funktionen 4444444400nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 63 DEILS selbEr programmieren namens ana FT EEE EREFHHER EEE FE 63 Sil gt l El las EIG EEE E TEPRELTTSLELET EOSCEITTELTELEEERSEHTELTET EERCEEHTER LEEREN 64 Programmablauf und steuerung 444444440nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnen 72 INGEUDEEINGEUDEZONGE eE 79 Buld iM FUNKIONE M e aeae E ST ACLITITELETET TECRUEPLITET EST ORUITHLITET ET SOREEEETIER LE 84 B lld im Dialoge ee ERS TECELETITLTIEN 89 Systemspezifische Operationens aa Raa aaa Ra E 98 Benutzerdefinierte Dialoge uuuss444nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 116 Debugger Kontrollanweisungen uusssss4ssnnnnnnnnnnnnnnnn
69. 0 angibt Folgendes Script zeigt uns also direkt den Inhalt der Datei TEST TXT an readfile datei test txt 0 echo Inhalt von TEST TXT new_line new_line datei Wir verwenden im obigen Script ausserdem die vordeklarierte Variable new_line um jeweils einen Zeilenumbruch im ECHO Meldungsfenster zu erzeugen Sowohl bei READFILE als auch bei WRITEFILE kann durch berpr fung der Variablen errorcode gepr ft werden ob die jeweilige Aktion erfolgreich war oder nicht Die Vorgehensweise ist dieselbe wie bei den bisher besprochenenen Anwendungsf llen f r errorcode 1 bei einem Fehler z B bei READFILE wenn EOF eintritt oder die Datei nicht exis tiert 0 bei erfolgreicher Durchf hrung Neben dem Schreiben und Lesen von Textdateien ist es in RapidBATCH 5 auch erstmals m glich Bin rdateien zu be arbeiten Als Bin rdateien definiert man alle Dateien die keine direkten Textdateien sind Selbst Office Dateien wie XLS oder DOC sind KEINE Textdateien Wir werden in diesen Beispielen hier auch nur lesbare Texte in die Bin rdateien schreiben es k nnen aber auch beliebi ge Sonder und Steuerzeichen in die Bin rdateien geschrieben werden Um eine Datei es kann auch eine Textdatei sein bin r zu schreiben bietet RapidBATCH die Anweisung PUTFILE Wenn man mit PUTFILE in eine nicht existierende Datei schreiben will schl gt dies fehl daher MUSS die Datei vorher mit NEWFILE explizit erzeugt werden Folgendes
70. 3 PWDBOXR nn 91 RANDVAR uuenn 88 READFILE 101 REM eiaa n 80 RENAMERILE 100 REPEAT a 74 REPLACEVAR 87 RESET 72 RESUME 78 RMDIR 98 SAVEBOX asaini 95 SENDKEYS e 111 SHELL ee 98 SHORTCUT 106 SHUTDOWN 115 SYS EM 98 TRAYMENU on 97 TRIMVAR e 86 UNTIL 74 UPVAR 86 WAIT nnneeeesennenennennennennennnnnn 80 WRITEFILE ossec 101
71. 34 jeweils durch die Basis des Zahlensystems teilt bei Dual zahlen jeweils durch 2 Erh lt man einen Restwert mit Nachkommastelle so wird eine 1 als Ziffer gesetzt andernfalls eine 0 Kommt letztendlich als Restwert 0 heraus ist die Zahl vollst ndig ins andere Zahlensystem bertragen nachdem man sie noch einmal umgedreht hat da die berechnete Zahl von rechts nach links aufgebaut wird Unser Konvertierungsprogramm soll nun wie folgt aufgebaut werden Ein Dialogfenster mit zwei Eingabefeldern wobei das obere f r die Aus und Eingabe von Dezimalzahlen und das untere f r die Aus und Eingabe von Zahlen im jeweili gem Zahlensystem verwendet wird In welches Zahlensystem umgerechnet wird wird ber ein Men im Dialogfenster festgelegt bei dem der jeweils aktuelle Umrechnungsmodus mit einem H ckchen markiert wird Hier kann der Benutzer den Umrechnungsmodus wechseln Das Programm soll jeweils vom Dezimal ins eingestellte Zahlensystem als auch vom eingestellten Zahlensystem ins Dezimalsystem konvertieren k nnen Die Konvertierung soll live bereits w hrend der Eingabe automatisch im jeweils umgekehrten Eingabefeld durchgef hrt werden Diese ganzen Anforderungen an unser Programm stellen aber mit RapidBATCH gar kein Problem dar In nicht mehr als 10 Minuten und einer Scriptl nge von etwa 120 Zeilen inklusive entsprechender Kommentare und Leerzeilen ist das komplette Programm fertig und lauff hig wenn man bereits die entsprechende Erfahrun
72. 35 InputBox_X 135 InputBox_Y 135 ListBox_Height 135 ListBox_MultiSel 135 ListBox_Ok 135 ListBox_Width 135 ListBox_X 135 ListBox_ Y 135 Metric_Caption_Height 135 Metric_Edge_Height 135 Metric_Edge_Width 135 Metric_Menu_Height 135 month 133 mouse _x 135 mouse_y 135 new_line 133 null 4 4 23 2 136 OpenBox_DefFileExt 136 ownname 136 pipe 133 QUOt 4 2 52 42 825 133 RB_Pro 136 RB_Version 136 SaveBox_DefFileExt 136 Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved ScreenHeight 136 ScreenWidth 136 std_sep 137 tab 133 time ae 137 Hr imssenssesterieens er 134 windir 137 winvers 137 XPStyleActive 135 Year 133 BREAK ea 74 CAI esse 99 CHDIR en 98 GNTVAR ans ae 87 CONFIRM 89 CONT rer 74 COPYFILE iiin 100 COPYVAR cirian 86 DEBUGMODE 130 DEBUGVARS 130
73. A repeat IE gt Malt infobox Es ist time am day month year show wait 1000 umer ij 10 end Die Variable time enth lt die Uhrzeit wird also bei jedem Auslesen aktuell und neu gef llt Das Format der time Variablen ist HH MM SS also Stunden Minuten und Sekunden Anders ist es bei dem Datum Da RapidBATCH ein international eingesetztes Softwareprodukt ist wurde hier Wert auf einfache Datumsformatierung gelegt und die drei Informationen Tag Monat und Jahr in drei Variablen day month und year aufgeteilt Man kann also durch ein faches Zusammenbauen des Datums mit dem Join Operator das Format v llig frei bestim Es ist 00 08 10 am 06 08 2005 men Ausgabe der aktuellen Zeit und des aktuellen Tagesdatums im INFOBOX Dialog Oftmals ist es auch n tig ob nun bei der Ausgabe von Informationen oder direkt beim Schreiben von Dateien beispiels weise Tabulatoren oder Zeilenumbr che einzuf gen Da ein Tabulator oder Zeilenumbruch intern nichts anderes als ein weiteres ASCIlI Zeichen ist k nnte man sich dieses auch mit der Funktion GETCHR holen aber RapidBATCH hat auch bereits vordeklarierte Variablen welche einem an dieser Stelle die Arbeit abnehmen new_line tab crlf pipe und quot new_line und crif stellen jeweils Zeilenumbr che dar allerdings mit einem wichtigem Unterschied Unter Win dows Systemen ist es besonders bei Texten blich Zeilenumbr ch
74. ALOG und RUNDIALOG k nnen jetzt komplett benutzerdefinierte individuelle Anwendungsfenster und Dialoge entworfen und program miert werden Dieses m chtige Feature macht RapidBATCH damit zu einer vollwertigen Programmiersprache zur Entwicklung von Windows Anwendungen aller Art Es k nnen bis zu 17 unterschiedliche Dialog Elemente so genannte Widgets v llig dynamisch erzeugt und bereitgestellt werden Jedes Widget unterst tzt verschie dene Attribute und Ereignisse auf die reagiert werden kann Neue Registry Bearbeitungsfunktionalit ten NEWREGKEY DELREGKEY LETREGVAL GETREGVAL und DELREGVAL Neue Systemfunktionalit ten DISKFREE DISKSIZE DISKTYPE LOCKWORKSTATION und SHUTDOWN Komplett berarbeitete SENDKEYS Makrosprache mit viel einfacherem Handling als zuvor ab RapidBATCH 5 1 0 Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 4 von 138 MR h Benutzerhandbuch e Aufruf individueller DLL Funktionen ber die neue EXT Funktionsschnittstelle Durch diese M glichkeit kann so gut wie jede Programmieraufgabe elegant und professionell gel st werden ab RapidBATCH 5 1 0 e Programm und Dokumentenverkn pfungen anlegen mit SHORTCUT e _Fernsteuern der Maus mit MOUSEMOVE sowie auslesen und setzen der Mausposition mit den neuen vorde klarierten Variablen mouse_x und mouse _y e Neue build in Funktionen CNTVAR zur Ermittlung der Anzahl eines Substrings innerhalb eines Strings
75. All rights reserved Seite 35 von 138 k5 Benutzerhandbuch Systemspezifische Operationen Programme starten Oftmals ist es gerade in der Batch Programmierung notwendig externe Programme zu starten um bestimmte Vorge hensweisen und Methoden die zu einem Ergebnis f hren zu automatisieren Um Programme zu starten bietet Ihnen RapidBATCH gleich vier verschiedene M glichkeiten an Klassische Methode zum Starten einer Anwendung ist die SHELL Anweisung Sie f hrt ein Programm parallel zum RapidBATCH Script aus d h das Script selbst l uft parallel zum gestarteten Programm weiter SHELL erwartet als Parameter den Pfad des zu startenden Programms der auch Kommandozeilen Parameter beinhalten kann sowie einen so genannten Anzeigemo dus Show Mode der angibt wie das Programm gestartet werden soll Der Anzeigemodus ist nur f r einige Windows Programme interessant nicht alle Programme unterst tzen diese M g lichkeit Als Anzeigemodi k nnen hier die Were SHOW HIDE MINIMIZED oder MAXIMIZED angegeben werden SHOW startet ein Programm mit der normalen Fenstergr e HIDE startet es versteckt d h nicht sichtbar womit die HIDE Option f r Konsolenprogramme und Batch Jobs sehr interessant ist da diese somit unsichtbar im Hintergrund und ohne ein DOS Fenster ausgef hrt werden k nnen Die Modi MINIMIZED und MAXIMIZED starten das Programm mit einem minimierten bzw maximierten Programmfenster Diese beiden Werte sind jedoch
76. Aufruf kopiert alle Dateien mit dem Muster aus dem rem Verzeichnis C jmksf rb5 in das Verzeichnis C test copri les es anksehdos ea case Yazat end Dateien lesen und schreiben Um Dateien in RapidBATCH zu verarbeiten stellt Ihnen RapidBATCH vier vielseitig anwendbare Anweisungen und Funktionen zur Verf gung Mit Hilfe dieser Anweisungen und Funktionen k nnen Sie sowohl Textdateien als auch bin re Dateien lesen und schreiben Um Daten in eine Textdatei zu schreiben bietet RapidBATCH die Anweisung WRITEFILE WRITEFILE erwartet als Parameter einen Dateinamen sowie den zu schreibenden Text also die zu schreibenden Daten Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 40 von 138 k5 Benutzerhandbuch Einfachstes Fallbeispiel writefile hello txt Dies ist ein einfacher Text in einer Textdatei WRITEFILE erweitert bei jedem Aufruf den Inhalt einer Datei falls diese schon existiert d h der zu schreibende Wert wird an das Ende der Datei angeh ngt Ein Zeilenumbruch je WRITEFILE Aufruf geschieht in der Datei automatisch Existiert die zu schreibende Datei noch nicht wird sie neu erstellt und der entsprechende Wert in die erste Zeile ge schrieben F hren wir also den folgenden Code aus writefile test txt Das ist ein Test writefile test txt Und jetzt sind wir in der zweiten Zeile writefile test txt So denn Das ist das Ende der Datei so
77. Auslesen von Umgebungsvariablen Die Funktion erwartet eine Variable die den Wert der auszulesende Umgebungsvariable erh lt sowie den Namen der Umgebungsvariable die gelesen werden soll LETENV erlaubt das Setzen Erzeugen von Umgebungsvariablen Dabei gibt man die Umgebungsvariable gefolgt von einem Gleichheitszeichen oder Leerzeichen und einem Wert an siehe Beispiel Beispiele rem PATH auslesen getenv pathvar PATH rem Neue Umgebungsvariable TEST erzeugen letemaarlRsiHeiflioegwWeorteh Bemerkungen Ge nderte oder neu erstellte Variablen werden nach Beendigung des Scripts durch das Betriebssystem automatisch wieder zur ckgesetzt bzw neue Variablen werden gel scht MCI Syntax MCI Befehlsausdruck Beschreibung Sendet ein Kommando an das Windows Media Control Interface mit dem sich Mediadaten aller Art abspielen lassen z B MIDI AVI WAV MP3 MPEG usw Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 107 von 138 k5 Sprachreferenz Beispiele men op em Emus ernDBL mein play must e mes wasser mer de lose mmus e mpo end Bemerkungen Weitere Informationen zu MCIl Kommandos finden Sie in der englischsprachigen Hilfedatei MCI HLP die sich im DOC Verzeichnis Ihrer RapidBATCH Installation befindet Die Variable errorcode erh lt das Ergebnis der API Funktion mciSendString und kann somit auf evtl Fehler abgefragt werden NEWREGKEY DELREGKEY Synt
78. BUTTON Ein IMAGEBUTTON Widget stellt eine zum Button Widget quivalente Schaltfl che auf einem Dialog bereit Allerdings wird hier ein externes Bitmap Bild Dateiendung BMP anstatt eines Textes angezeigt LABEL LABEL Labels LABEL Widgets werden benutzt um andere Widgets wie z B Eingabefelder zu beschriften Der jeweilige Text wird ber das CAPTION Attribut gelesen oder gesetzt mem INPUT Ein INPUT Widget stellt ein einzeiliges Texteingabefeld bereit Diese Widgets werden ver wendet um beispielsweise Zahlen oder einzeilige Werte z B Ortsnamen einlesen zu k n nen Der Text kann ber das TEXT Attribut ausgelesen oder gesetzt werden ebenso ist eine automatische Positionierung des Cursors bzw des ausgew hlten Textes mit dem SELPOS Attribut m glich Das SELECTION Attribut gibt den selektierten Text zur ck bzw ersetzt ihn mn PWD Ein PWD Widget stellt ein einzeiliges Passworteingabefeld bereit Diese Widgets werden verwendet um beispielsweise Passw rter oder Werte maskiert abzufragen d h dass die Werte vom Anwender selbst bzw auf dem Bildschirm nicht sichtbar sind Die Benutzung dieses Widgets ist quivalent zu der des INPUT Widgets EDIT EDIT EDIT_LINEWRAP Ein EDIT Widget stellt ein mehrzeiliges Texteingabefeld bereit Diese Widgets k nnen als kleine Texteditoren zur Bearbeitung und Darstellung von gr eren Texten auf einem Dialog verwendet werden Die Benutzu
79. BUTTON INPUT PWD EDIT_LINEWRAP LABEL OPTION GROUP COMBO STATIC_COMBO LIST_SORTED LIST_MULTI LIST_MULTISORTED Schriftartdefinition im Format Schriftart Name Schriftgr e Schriftstil R ckgabewert FONT Widgets Wurde dem Widget zuvor keine benutzerdefinierte Schriftart zugewiesen wird ein Leerstring R ckgabewert zur ckgegeben HEIGHT Ermittelt die H he eines Widgets Widgets DIALOG BUTTON IMAGEBUTTON INPUT EDIT EDIT_LINEWRAP LIST LIST_SORTED LIST_MULTI LIST_MULTISORTED COMBO STATIC_COMBO RADIO OPTION GROUP IMAGE PWD PROGRESS R ckgabewert Die Widget H he in Pixel Gibt das interne Windows Handle von Typ HWND long eines Widgets zur ck so da dieses aus einer DLL die mit der EXT Anweisung aufgerufen wird angesprochen werden kann Dieser HWND Widgets Wert ist nur f r Entwickler interessant die RapidBATCH DLLs programmieren DIALOG BUTTON IMAGEBUTTON INPUT EDIT EDIT_LINEWRAP LIST LIST_SORTED LIST_MULTI LIST_MULTISORTED COMBO STATIC_COMBO RADIO OPTION GROUP IMAGE PWD PROGRESS R ckgabewert Der HWND Wert des jeweiligen Widgets ICON Alternatives Icon eines Dialogfensters DIALOG E R ckgabewert Relativer oder absoluter Pfad der ICO Datei wenn gesetzt Wurde dem Widget kein Icon zuge teilt wird ein Leerstring zur ckgeliefert
80. Beispiel schreibt den Text Hello World bin r in eine Datei BINA RY TXT Neben dem Dateinamen und dem zu schreibenden Wert muss bei PUTFILE als zweiter Parameter der Byte Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 41 von 138 MR h Benutzerhandbuch Offset wo der Text in die Datei eingef gt werden soll angegeben werden Als Offset bezeichnet man die Position eines Zeichens ab dem Anfang der Datei Da unsere Datei leer ist beginnen wir also bei Offset 1 Es ist also das erste Byte der Datei Die Zeichen die bin r in die Datei geschrieben werden werden nicht im Klartext angegeben sondern als Liste von ASCIl Zeichencodes der zu schreibenden ASCIl Zeichen in der jeder Wert durch das bereits bekannte Standard Separatorzeichen welches ber die Variable std_sep definiert werden kann getrennt ist Wie bereits bekannt sein sollte ist dies im Normalfall das Pipe Zeichen newfile binary txt purcile Voilmaveysezer Ir Ao MOSES SB2IET I nra 108 100 open binary txt In diesem Fall haben wir gerade 11 Byte in die Datei eingef gt also 11 ASCIl Zeichen Anmerkung Um einen Klartext ganz einfach in eine Liste von ASCIlI Zeichen zu konvertieren verwenden Sie einfach folgendes Script welches ich auch zum Erstellen der Beispiele in diesem Handbuch verwendet habe inputbox eingabe Klartext Bitte geben Sie einen Text ein if eingabe halt 59 0 getlen
81. Callback Funktion aufruft Das ist ine anwenderdefinierte Funktion deren Adresse an EnumWindows bergeben wird Die Definition der Parameter und des R ckgabewerts ist festgelegt Diese Funktion wird von der Windows Funktion EnumWindows f r jedes Fenster aufgerufen Dabei wird jeweils eine Fensternummer Window Handle bergeben Diese Funktion wird im folgenden definiert Sie wird nicht exportiert da sie nicht von RB aus benutzt wird und Windows die Adresse ja beim Aufruf von EnumWindows bergeben bekommt Der Name der Funktion und die Namen der Parameter sind frei w hlbar es wird hier der Einfachheit halber die Definition der Funktion in der Windows API selbst benutzt Im Parameter hwnd wird jeweils eine Fensternummer bergeben Der Parameter lParam wird vom Anwenderprogramm an EnumWindows bergeben und von dort weiter an die Funktion EnumWindowsProc Damit kann mann der Callback Funktion noch eigene Parameter bergeben alternativ k nnten globale Variablen verwendet werden In unserem Beispiel wird in die Variable nicht benutzt Die berschriften werden in einen vorher angeforderten Puffer geschrieben Die Gr ss sollte ausreichen trotzdem muss nat rlich ein berlauf abgefangen werden F r die Gr sse wird eine Konstante per define deklariert so dass bei Bedarf nur eine Stelle im Quelltext ge ndert werden muss E define BUF
82. Dateiname durch das in der vordeklarierten Variablen std_sep definierte Separationszeichen im Normalfall das Pipe Zeichen getrennt ist Wir k nnen diese Liste daher direkt an LISTBOX als Item Liste bergeben Um einmal die Verwendung der verschiedenen Filter Wildcards und Verzeichnistiefenangaben zu demonstrieren hier ein paar kommentierte Beispielaufrufe von FINDFILES rem Alle Dateien im aktuellen Verzeichnis auflisten findfiles dateiliste Tir rem Der Filter sucht nach allen Dateien die es im Verzeichnis gibt rem Alle TXT Dateien im aktuellen Verzeichnis und allen Unterverzeichnissen rem bis zu einer Ebene auflisten Findelesa date lrsgteljlr oa Aae A rem Der Filter txt sucht nach allen Dateien die die Dateiendung rem TXT haben Es werden also z B Dateinamen wie hallo txt x txt rem und txt txt eingelesen wenn diese denn existieren rem Alle Dateien im aktuellen Verzeichnis auflisten die mit hallo rem beginnen und mit DOC enden findfiles dateilistel hallo doct IE Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 39 von 138 7 Benutzerhandbuch rem Alle Dateien im aktuellen Verzeichnis auflisten die mit h einem beliebigen rem Buchstaben und llo beginnen und mit irgend einer Dateiendung enden findfiles dateiliste h 1lo 1 rem Hier werden z B Dateinamen wie hallo92 sav hello bak hullokkn exe re
83. Ein einfaches Beispiel f r eine Prozedur mit Parametern stellt folgendes Script dar Es definiert die Prozedur summe zur Summierung zweier Werte die als Parameter bergeben werden Das Ergebnis der Addition wird als Text in einem Meldungsfenster ausgegeben rem Prozedur Demoscript mit Parametern proc summe wert1 wert2 dec ergebnis ergebnis wert1 wert2 echo Die Summe von wert1 und wert2 ist ergebnis endproc rem Konstante Parameterwerte Sammer a T near Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 18 von 138 k5 Benutzerhandbuch rem Variable Parameterwerte inputbox a Wert A Bitte geben Si inezan enms E ie al Ss Ti palt inputbox b Wert B Bitte geben Si ine Zan leino LE OI N halt summe lal b end Aus dieser Prozedur l sst sich jetzt auch eine Funktion definieren die als R ckgabewert die Summe beider Parameter zur ckgibt Funktionen sind dabei nicht weniger schwer programmierbar wie einfache Prozeduren nur dass wir hier anstatt der Schl sselw rter PROC und ENDPROC die Schl sselw rter FUNC und ENDFUNC verwenden Um den Wert an die Ergebnisvariable die beim Prozeduraufruf mit angegeben werden muss zur ckzugeben verwenden wir hier ausserdem die Anweisung RET was soviel bedeutet wie return zu deutsch Zur ckkehren RET kann auch ohne R ckgabewert als Parameter in einfachen Prozeduren einge
84. FSIZE 10000 10000 Bytes sollten reichen bei Bedarf erh hen define TEXTSIZE 100 100 Bytes pro Titel l ngere Titel werden abgeschnitten H hier noch eine Fehlernummer define ERROR_BAD_INPUT 11 Hier zwei globale Variablen die auf den Puffer f r die berschriften und die Trennzeichenkette zeigem char gsSeparator char NULL char qgsBuffer char NULL Hier die Callback Funktion In der Variablen hwnd wird jeweils eine Fensternummer bergeben Der Parameter lParam wird nicht benutzt es wird NULL bergeben E BOOL CALLBACK EnumWindowsProc HWND hwnd LPARAM lParam Zuerst einige lokale Variablen char Title TEXTSIZE memset Title 0 TEXTSIZE Titel des angegebenen Fensters holen als max L nge wird TEXTSIZE 1 bergeben um auf jeden Fall Platz f r das Null Byte am Ende zu haben GetwWindowText hwnd Title TEXTSIZE 1 Pr fen ob der Titel nicht leer ist sonst die Funktion beenden if Title 0 Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 66 von 138 h Benutzerhandbuch Pr fen ob das Fenster sichtbar ist sonst dieses Fenster ignorieren und das evtl n chste anfordern if IswindowVisible hwnd Das Fenster hat eine nicht leere berschrift und ist sichtbar also in die
85. Fenster Ding bezeichne ich hier sowohl Dialogfenster als auch Dialogelemente wie z B Buttons Eingabefelder usw Die Unterschiede zwischen Dialogfenstern und Dialogelementen werden sp ter genauer erl utert Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 52 von 138 MR h Benutzerhandbuch Hinweis Mit der RapidBATCH Professional Edition haben Sie die M glichkeit Dialogfenster schnell amp unkompliziert mit dem mitgeliefertem Werkzeug RapidBATCH Visual Dialog Designer zu erstellen Widgets k nnen hier in einer Echt zeitumgebung erstellt angeordnet und bearbeitet werden Ist der Dialog fertig entworfen generiert der Assistent den daf r n tigen RapidBATCH Code den Sie lediglich um die Ereignisbehandlung der einzelnen Widgets erweitern brau chen Zum Verst ndnis der Programmierung eigener Dialogfenster sollten Sie aber trotzdem dieses Kapitel durcharbei ten Der Visual Dialog Designer selbst ist komplett zu 100 in RapidBATCH geschrieben worden Um Widgets zu erzeugen verwenden wir die Anweisung NEWDIALOG NEWDIALOG ben tigt wie im Beispielscript zu sehen als Parameter ein so genanntes Widget Label welches man auch als Namen f r das Widget ansehen kann ber diesen Namen kann das Widget sp ter angesprochen werden Des weiteren erwartet NEWDIALOG einen Widget Typ der angibt welche Art von Widget wir erzeugen m chten z B Dialogfenster Button einzeiliges Eingabef
86. Hexadezimal checked true endif RE rem Aktuelle Basis auf bergebenes Zahlensystem setzen aktuelle_basis zahlensystem berechne_Zielwert endproc rem Erzeugen und Aufsetzen des Hauptfensters newdialog umrechner dialog 1 1 270 100 rem Fenstertitel und Style setzen letdialog umrechner caption Bin Okt Hex Umrechner letdialog umrechner style single rem Men baum erzeugen men amp Modus Dezimal gt amp Bin r Dezimal gt amp Oktal Dezimal gt amp Hexadezimal letdialog umrechner menu men rem Erzeugung von Eingabefeldern und Labels rem Label und Eingabefeld f r Dezimalzahl newdialog umrechner 1l_dezimal label 5 8 100 22 letdialog umrechner l_dezimal caption Dezimalwert newdialog umrechner dezimal input 110 4 150 25 letdialog umrechner dezimal font Sans Serif 10 2 letdialog umrechner dezimal event_change true Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 61 von 138 7 Benutzerhandbuch rem Label und Eingabefeld f r Zahl des jew Zahlensystems newdialog umrechner l_konvert label 5 34 100 22 newdialog umrechner konvert input 110 30 150 25 ietdialog umrechner konverer font Sans Serifos letdialog umrechner konvert event_change true setze_Zahlensystem kin rem Dialogfenster auf dem Bildsch
87. II Zeichencodes Est 0 getlen len klartext repeat ac Se Halt getcharat ch klartext i getasc ch ch if byteliste byteliste byteliste ch une ae zen echo Klartext klartext echo Liste an ASCII Zeichencodes byteliste rem Schreiben der Datei putfile bytefile bin 1 byteliste if errorcode false echo PUTFILE ist fehlgeschlagen endif Bemerkungen Die zu schreibende Datei muss existieren Wenn die Datei nicht existiert kann auch kein Wert in sie hineingeschrieben werden Erstellen Sie dann einfach eine neue Datei mit Hilfe von NEWFILE errorcode erh lt den Wert 1 wenn PUTFILE fehlschlug andernfalls 0 FINDFILES Syntax FINDFILES Dateiliste Dateifilter Verzeichnistiefe Beschreibung Liest alle Dateien eines Verzeichnisses mitsamt Unterverzeichnissen aus und gibt diese als Dateiliste zur ck Diese Funktion ben tigt als Parameter einen so genannten Dateifilter der die Wildcards und beinhalten kann und eine Ebenen Angabe Verzeichnistiefe die angibt wieviele Unterverzeichnis Ebenen maximal mit eingelesen werden sollen Wird als Verzeichnistiefe der Wert 0 bergeben liest FINDFILES alle Verzeichnisse bis zu 255 Unterverzeichnis Ebenen ein Wird der Wert 1 als Tiefe bergeben so wird nur das aktuelle Verzeichnis eingelesen bei dem Wert 2 wird das aktuelle Verzeichnis mit einer Unterverzeichnis Ebene eingelesen usw Copyright
88. Inhalt der Zwischenablage in einem anderen Programm einf gt rem Zeige mir den Inhalt der Zwischenablage echo Aktueller Inhalt der Zwischenablage clipboard rem So und jetzt schreiben wir mal ein Hello World rein elipboard Hello World by RapidBATCH echo Neuer Inhalt der Zwischenablage clipboard rem Und jetzt via Fernsteuerung den Text mal im Notepad einf gen shell windir notepad exe show wait 500 sendkeys active_window Und das ist der Inhalt Ihrer Zwischenablage in einem anderem Programm 271v 017 end Und da findet man auch direkt schon die n chste vordeklarierte Variable active_window active_window enth lt den Titel des aktuellen Vordergrundfensters und kann idealerweise von SENDKEYS exzellent genutzt werden wenn man den genauen Titel eines Fensters nicht kennt oder dieser variabel ist wie es z B bei Word oder anderen Office Programmen der Fall ist wenn man ein Dokument geladen hat Auch die bereits kennen gelernte Variable windir wird im obigen Script benutzt Sie enth lt den absoluten Pfad des Windows Systemverzeichnisses Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 49 von 138 k5 Benutzerhandbuch Auch das Auslesen von Systemdatum und Systemzeit ist in RapidBATCH kein Problem Folgendes Script zeigt f r 10 Sekunden die aktuelle Uhrzeit und das aktuelle Datum in einer INFOBOX sekundengenau an 9 KG
89. InputCount Zuerst wieder die Pr fung der Parameter Zus tzlich zu Output werden jetzt aber auch Input und InputCount berpr ft Ausserdem darf die bergebene Trennzeichenkette nicht zu lang sein w re sie z B BUFFSIZE Zeichen lang w rd s beim zweiten Fenster das in die Liste aufgenommen werden soll zu einem Puffer berlauf kommen Um di ntsprechende Pr fung in der Funktion EnumWindowsProc zu sparen wird einfach die L nge beschr nkt if Output NULL treturn 1 Einen Speicherbereich von Windows anfordern Als Gr sse wird hier die Konstannte BUFFSIZE benutzt LocalAlloc f llt den Speicher bereich mit Nullen das entspricht einer leeren Zeichkett Output LocalAlloc LPTR BUFFSIZE Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 67 von 138 5 Benutzerhandbuch Pr fen ob die Speicheranforderung erfolgreich war if Output NULL return 1 Jetzt wird die Anzahl der Parameter berpr ft sowie die Trennzeichenkett selbst Input NULL und Input NULL d rften nicht eintreten wenn InputCount 1 gilt Input 0 pr ft auf eine leere Zeichenkette ist das erste Zeichen 0 if InputCount 1 Input NULL Input NULL Input 0 strlen Input gt TEXTSIZE Es wird eine lee
90. Liste aufnehmen Zuerst pr fen ob die Liste schon etwas enth lt if gsBuffer 0 Ja die Liste ist nicht leer also zuerst die Trennzeichenkette anh ngen strcat qsBuffer qgsSeparator Dann den Fenstertitel des bergebenen Fensters anh ngen strcat gsBuffer Title Jetzt wird gepr ft ob noch gen gend Platz im Puffer f r eine weitere Trennzeichenkette und eine weitere berschrift ist if strlen gsBuffer strlen gsSeparator TEXTSIZE lt BUFFSIZE Ja noch genug Platz also TRUE zur ckgeben um evtl weitere Fensternummer anzufordern return TRUE else Nein der Puffer ist fast voll Die Aufz hlung der Fenster an dieser Stelle beenden auch wenn noch ein kurzer Fenstertitel Platz gehabt h tte return FALSE TRUE bedeutet das weitere Fensternummern geliefert werden sollen soweit vorhanden return TRUE Hier di igentliche Funktion rbxCreateWindowList Diese Funktion ben tigt einen Parameter Den Zeiger auf eine Trennzeichenkett Sinnvollerweise wird hier die RB Konstante std_sep oder new_line bergeben Diese Funktion ruft dann die Windows Funktion EnumWindows auf die dann f r jedes Fenster die oben definierte Callback Funktion EnumWIndowsProc aufruft int __declspec dllexport _cdecl rbxCreateWindowList char Output char Input int
91. M glich sind die selben Parameter Werte wie bei DEBUGVARS Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 131 von 138 MR 71 Sprachreferenz Vordeklarierte Variablen active_window Beschreibung Enth lt den Fenstertitel Text des aktuellen Vordergrundfensters Verwenden Sie active_window um z B mit der SENDKEYS Anweisung Tastaturbefehle an das aktive Fenster zu sen den app_icon Beschreibung Setzt das Programmicon f r alle Dialoge In compilierten Scripts wird automatisch das hinzugelinkte oder standardm ige Icon der EXE Datei verwendet in interpretierten Scripts das RapidBATCH Icon des Interpreters Uber app_icon kann dieses Icon nun auf eine externe ICO Datei die sich z B im selben Verzeichnis wie das Script befindet gesetzt werden Dieses Icon erscheint dann in der linken oberen Ecke der Dialogfenster bzw bei TRAYMENU als Traybar Icon Wird app_icon auf einen Leerstring gesetzt so wird wieder das Standard Anwendungsicon verwendet case_sensitivity Beschreibung Hat die Variable case_sensitivity den Wert 1 bzw false so wird bei den Funktionen GETTOK GETPOS REPLA CEVAR und CNTVAR nicht zwischen Gro Kleinschreibung unterschieden Zum Beispiel werden im Falle von REPLA CEVAR wenn der Suchstring Hallo ist auch Substrings ersetzt die HALLO hallo oder HaLIO lauten wenn ca se_sensitivity als 1 gesetzt wurde Andernfalls n
92. MR h Benutzerhandbuch oder auch eine Quadrierung Ce el Diese Kurzform f r Zuweisungen ist mit allen RapidBATCH Operatoren m glich und spart viel Tipparbeit Werte manipulieren Da Sie nun die Verwendung von Variablen kennengelernt haben gehen wir noch einen Schritt weiter Variablen sind n mlich nicht nur dazu da um darin Werte abzulegen sondern auch um mit diesen Werten zu arbeiten sie zu verarbeiten Zu diesem Zweck stellt Ihnen RapidBATCH so genannte build in Funktionen bereit Build in bedeutet dass diese Funk tionen fest in den RapidBATCH Standardbefehlssatz eingebaut sind und f r die meisten einfachen Operationen schon ausreichen Diese build in Funktionen bieten aber auch die ideale Basis um sp ter eigene individuelle Funktionen oder Prozeduren mit individuellen Eigenschaften und Programmverhalten zu entwickeln wozu wir allerdings erst sp ter kom men werden Funktionen haben die Eigenschaft dass sie immer einen Wert zur ckgeben Anders als bei vielen anderen Program miersprachen ist es in RapidBATCH gang und gebe dass die Ergebnisvariable die den R ckgabewert der Funktion erh lt hinter und nicht vor dem Funktionsnamen angegeben wird Ein Beispiel zur Anwendung einer Funktion zur Stringmanipulation ist folgendes Script das den vom Benutzer eingege benen Wert mit Hilfe der Funktion UPVAR in Gro buchstaben konvertiert rem Eingabe des Benutzernamens inputbox benutzer Eingabe Guten Tag wie ist Ih
93. Meldungsfenster mit dem bergebenen Wert auf dem Bildschirm ausgeben lassen k nnen ECHO dient zur einfachsten Ausgabe einer Information daher wird sie auch oft in unseren Beispielen benutzt RapidBATCH Echo 1 Einfache Ausgabe Einfache Ausgabe von Informationen und Meldungen mit dem ECHO Dialog Ahnlichen Zweck erf llt auch die CONFIRM Funktion die einen Benutzerdialog mit Ja Nein Option anzeigt CONFIRM erwartet als Parameter eine R ckgabe Variable die Auskunft ber den gedr ckten Button gibt und einen Aufforde rungstext bzw eine Frage die mit Ja oder Nein beantwortet werden kann Wenn der Button Ja geklickt wurde wird der Wert 0 an die R ckgabe Variable zur ckgegeben bei Nein der Wert 1 RapidBATCH Confirmation Ja Nein Auswahl mit dem CONFIRM Dialog Ein Beispiel zur Verwendung von CONFIRM ist folgendes Script aseleie rem Abfrage Script beenden confirm ende M chten Sie das Script beenden rem Wenn Nein gedr ckt wurde springe zum Anfang if ende 1 goto start echo Script beendet end ECHO und CONFIRM bieten somit eine einfache M glichkeit schnell einen Wert zu pr sentieren oder eine einfache Ja Nein Abfrage zu gestalten Um aber eine Messagebox individueller zu gestalten bietet Ihnen RapidBATCH die MSGBOX Anweisung MSGBOX ben tigt als Parameter einen Titel einen Meldungstext sowie einen Messagebox Style der als Zahl definiert wird Eine ganz einfache Messagebox w r
94. Neil a Nat VS end Neben den bis jetzt besprochenen Messageboxes bietet RapidBATCH aber auch eine andere Form der Meldungs und Status bermittlung Die INFOBOX Manchmal ist es n tig z B bei l nger andauernden Operationen eine Meldung in der Form Bitte warten einzublen den Die INFOBOX kann vom Programmierer daher v llig frei ein oder ausgeblendet werden und besitzt weder einen Ok Button noch kann sie verschoben oder in den Hintergrund gebracht werden Bitte warten Einblendung des INFOBOX Dialoges Ein einfaches Beispiel f r die Verwendung der INFOBOX ist folgendes Script das eine INFOBOX mit dem Text Hello World f r 5 Sekunden einblendet Zum Abwarten der 5 Sekunden wird hier das Script mit Hilfe der WAIT Anweisung f r 5000 Millisekunden 5 Sekunden angehalten infobox Hello World show wait 5000 end In unserem Fall wird die INFOBOX automatisch wieder ausgeblendet weil das Script beendet ist Um die INFOBOX manuell auszublenden benutzen Sie INFOBOX noch einmal in der Form Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 27 von 138 k5 Benutzerhandbuch aurelaon N hrde oder verwenden sie die professionellere Methode indem Sie die vordeklarierte Variable InfoBox_Enabled auf den Wert hide oder 1 setzen durch setzen auf show oder 0 wird INFOBOX wieder angezeigt Beispiel echo INFOBOX wird jetzt eingeblendet infobox Hello W
95. P IMAGE PWD PROGRESS R ckgabewert Der Typ des Widgets VISIBLE Ermittelt ob ein Widget sichtbar ist oder nicht Widgets R ckgabewert WIDTH Widgets R ckgabewert Widgets R ckgabewert Widgets DIALOG INPUT LIST STATIC_COMBO OPTION IMAGE 0 Sichtbar 1 Unsichtbar Ermittelt die Breite eines Widgets DIALOG BUTTON IMAGEBUTTON INPUT EDIT EDIT_LINEWRAP LIST LIST_SORTED LIST_MULTI LIST_MULTISORTED COMBO STATIC_COMBO RADIO OPTION GROUP IMAGE PWD PROGRESS Die Widget Breite in Pixel Ermittelt die X Position eines Widgets Bei Basisdialogen ist diese Koordinate relativ zur linken oberen Ecke des Bildschirms bei Child Widgets relativ zur linken oberen Ecke des Basisdialogs zu dem das Widget geh rt DIALOG BUTTON IMAGEBUTTON INPUT EDIT EDIT_LINEWRAP LIST LIST_SORTED LIST_MULTI LIST_MULTISORTED COMBO STATIC_COMBO RADIO OPTION GROUP IMAGE PWD PROGRESS Die X Position des Widgets in Pixel Ermittelt die Y Position eines Widgets Bei Basisdialogen ist diese Koordinate relativ zur linken oberen Ecke des Bildschirms bei Child Widgets relativ zur linken oberen Ecke des Basisdialogs zu dem das Widget geh rt DIALOG BUTTON IMAGEBUTTON INPUT EDIT EDIT_LINEWRAP LIST LIST_SORTED LIST_MULTI LIST_MULTISORTED
96. R Test if errorcode 0 echo L schen von HKEY_CURRENT_USER Test war erfolgreich else cho Fehler beim Entfernen von HKEY_CURRENT_USER Test endif Wichtig beim Erstellen eines Schl ssels ist dass die n chsth here Ebene des zu erstellenden Schl ssels bereits exis tiert d h es besteht hier keine Aquivalenz zu MKDIR Um nun einen Wert in den Schl ssel selbst zu schreiben oder dem Schl ssel einen Wert hinzuzuf gen bietet Rapid BATCH die Anweisung LETREGKEY LETREGKEY unsterst tzt dabei drei unterschiedliche Datentypen String Bina ry und Long DWORD die sich als Werte in der Registry ablegen lassen Desweiteren erwartet die Anweisung den Hauptschl sselnamen den Schl sselpfad den Wertnamen sowie den zu setzenden Wert in der je nach Datentyp ange gebenen Form Folgendes Beispiel erzeugt einen neuen Wert HelloWorld im Schl ssel Test unter HKEY_CURRENT_USER der Schl ssel wird hier vorher auch nochmal mit NEWREGKEY angelegt rem Testschl ssel anlegen newregkey CURRENT_USER Test if errorcode 0 rem Wert in Registry schreiben letregval string CURRENT_USER Test HelloWorld Das ist der Wert rem War das Schreiben des Wertes erfolgreich if errorcode 0 echo Schreiben der Registry war erfolgreich else cho Fehler beim Schreiben der Registry endif endif Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer
97. T anweist eine bestimmte Aktion durchzuf hren als zweites zwei Koordinatenwerte die in der Form X Y bergeben werden wobei als Trennzeichen jedes beliebige in der vordeklarierten Systemvariablen std_sep definierte Trennzeichen sein kann wie auch bei Listen die man an die LISTBOX Funktion bergibt Diese Koordinaten setzen den Mauszeiger pixelgenau auf die entsprechende Stelle auf dem Bildschirm bzw f hren dort die entsprechend definier te Mausoperation durch Als Mausoperationen k nnen folgende Werte an MOUSEEVENT bergeben werden e 0 oder MOVE Maus nur bewegen kein Tastendruck 1 oder CLICK_LEFT einfachen Linksklick simulieren 2 oder DBLCLICK_LEFT doppelten Linksklick simulieren 3 oder CLICK_RIGHT einfachen Rechtsklick simulieren 4 oder DBLCLICK_RIGHT doppelten Rechtsklick simulieren 5 oder DOWN_LEFT Linke Maustaste gedr ckt halten 6 oder UP_LEFT Linke Maustaste loslassen 7 oder DOWN_RIGHT Rechte Maustaste gedr ckt halten 8 oder UP_RIGHT Rechte Maustaste loslassen Bearbeiten der Registry Mit der Version 5 0 erm glicht RapidBATCH nun auch erstmals das direkte Bearbeiten der Windows Registry Die Re gistry ist eine mit Windows 95 eingef hrte Datenbank welche ein fester Bestandteil der Windows Betriebssystemreihe geworden ist Der haupts chliche Zweck der Registry besteht darin Konfgurationswerte und individualisierende Schalter f r Programme abzulegen bzw soga
98. TON INPUT PWD EDIT EDIT_LINEWRAP LABEL OPTION RADIO GROUP IMAGE COMBO STATIC_COMBO LIST LIST_SORTED LIST_MULTI LIST_MULTISORTED PROGRESS R ckgabewert Die Position des Widgets in der Form X Y BreitelH he Die Koordinatenwerte liegen in Bildschirmpixeln vor PROGRESS Gibt den aktuellen Fortschitt eines Fortschittsbalken Widgets Progressbar zur ck PROGRESS a _ R ckgabewert Ein prozentualer Wert den die Progressbar derzeit repr sentiert Minimalwert 0 Maximalwert 100 READONLY Ermittelt ob ein Texteingabefeld auf nur lesen gesetzt ist In diesen Feldern kann kein Wert eingegeben oder ge ndert werden Text kann jedoch markiert werden EDIT EDITLINEWRAP INPUT R ckgabewert 0 Nur lesen Modus aktiviert 1 Nur lesen Modus deaktiviert Standard Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 125 von 138 MM 1 Sprachreferenz SELECTION Aktuelle Auswahl in einem Eingabe oder Listenfeld Widgets INPUT EDIT EDIT_LINEWRAP LIST_SORTED LIST_MULTI LIST_MULTISORTED COMBO STATIC_COMBO R ckgabewert Bei Eingabefeldern Der momentan markierte Text nu Bei Listenfeldern Das selektierte Element bzw eine Liste der selektierten Elemente jeweils durch Pipe Zeichen getrennt SELINDEX Aktuelle Auswahl in Listenfeldern LIST LIST_SORTED LIST_MULTI LIST_MULTISORTED R ckgabewert Der Index des gew hlten Eintrags bzw eine Liste von Indizes jeweils get
99. Technologies Jan Max Meyer All rights reserved Seite 96 von 138 k5 Sprachreferenz TRAYMENU Syntax TRAYMENU Auswahl Hilfstext Elementenliste Beschreibung Zeigt ein Programm Men als Icon in der Windows Taskleiste an aus dem der Benutzer via Rechtsklick ein Men an zeigen lassen und einen Men punkt ausw hlen kann Als Parameter erwartet diese Funktion einen Hilfstext der als Tooltip angezeigt wird sobald die Maus ber das Tray Icon bewegt wird sowie eine Liste an Elementen die zur Auswahl im Men angezeigt werden Jedes Element wird dabei durch das in der Variablen std_sep definierte Separationszeichen getrennt dies ist normalerweise das Pipe Zeichen R ckgabewert der Funktion ist der gew hle Men punkt Klickt der Benutzer das Icon mit der linken Maustaste an wird ein Leerstring zur ckgegeben Eintrag 2 N Eintrag 3 Beispiele traymenu menu Was m chten Sie essen Pizza Pommes Frites D ner Hamburger Hot Dog LE a nma echo Ihre Auswahl lautet menu else echo Sie haben keine Auwahl getroffen endif Bemerkungen In dem Men was beim Rechtsklick angezeigt wird k nnen auch Shortcuts definiert werden die durch Tastendruck angesteuert werden k nnen Um einen Shortcut Key zu definieren schreiben Sie einfach ein amp Zeichen vor das jeweilige Element z B B amp eenden Hier wird das e unterstrichen dargestellt und kann mit ALT e ausgew hlt werden Im Men kann auch ei
100. Vorname if name amp vorname echo Hallo vorname name else echo Sie haben nicht alle Werte eingegeben endif end Nat rlich k nnen auch UND und ODER Verkn pfungen beliebig hintereinander geschaltet werden nur m ssen Sie darauf achten dass die gegebenen Bedingungen auch wirklich erreicht werden k nnen Spr nge und Subs Ein bew hrtes Mittel den Programmablauf strukturiert zu gestalten ist der Sprung zu Codelabels und Unterprogram men den so genannten Subs Da allerdings die meisten Probleme mit eigenen Prozeduren und Funktionen und den Schleifen Anweisungen REPEAT und UNTIL gel st werden k nnen wird dieses Thema nur einmal kurz angesprochen Um mit Codelabels bzw Unterprogrammen zu arbeiten stehen Ihnen die Anweisungen GOTO GOSUB und RESUME zur Verf gung Mit GOTO k nnen Sie vorw rts oder r ckw rts durch das Script springen d h Sie k nnen mit der Pro grammausf hrung einfach an einer anderen Position im Script fortfahren Diese GOTO Spr nge werden von vielen Pro grammierern oft verhasst weil sie den Code unsch n und un bersichtlich machen doch manchmal sind solche Spr nge einfach unerl sslich und bringen auch viele Vorteile mit sich z B h here Performance Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 13 von 138 h5 Benutzerhandbuch Einfachstes Fallbeispiel ist z B folgendes Script Wir haben drei Meldungsf
101. abe TEXT echo Der Wert im Textfeld lautet text endif until event close_myDialog Ich denke dass Sie hiermit nun das grobe Verarbeitungskonzept von benutzerdefinierten Dialogen in RapidBATCH verstanden haben Im n chsten Abschnitt werden wir genauer auf die verschiedenen Dialogelemente sowie ihre Eigen schaften und Ereignisse eingehen Die Widgets im berlick Zur Entwicklung von individuellen Dialogfenstern mit und in RapidBATCH stehen ihnen ber 15 unterschiedliche Widgets mit zahlreichen Eigenschaften und Events zur Verf gung In diesem Abschnitt wird jedes verf gbare Widget ausf hrlich vorgestellt baros AAR DIALOG Ein Dialogfenster ist ein Widget welches als Vaterwidget f r alle weiteren Widgets z B But tons Eingabefelder usw agiert Dieses Dialogfenster kann verschiedene Fensterstyles annehmen und besitzt eine Titelleiste mit einem frei definierbaren Text Zus tzlich stellt die ses Widget auch Status und Men bars bereit Es k nnen meherere Dialogfenster zur selben Zeit angelegt und angezeigt werden Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 54 von 138 15 Benutzerhandbuch BUTTON BUTTON Ein Button zu deutsch Knopf stellt eine Schaltfl che auf einem Dialog bereit Buttons wer den verwendet um bestimmte Aktionen auszul sen Sie k nnen mit einem Text CAPTION Attribut ausgestattet werden IMAGE
102. aben beide den Wert 10 endif rem Logisches ODER liefert nur wahr wenn eine oder beide Variablen den Wert 10 enthal ten za id ol 10 if Jal oz lee echo A oder B hat den Wert 10 endif rem Komplexeres Beispiel zur Anwendung von logischen Operatoren ee ZT eier Zaren echo Starte Taschenrechner call c windows calc exe show endif Bemerkungen IF Bl cke k nnen beliebig ineinander verschachtelt werden Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 73 von 138 k5 Sprachreferenz REPEAT CONT BREAK UNTIL Syntax REPEAT Anweisungsblock CONT Anweisungsblock BREAK Anweisungsblock UNTIL Abbruchbedingung Beschreibung Mit REPEAT UNTIL l sst sich eine fussgesteuerte Schleife programmieren Diese M glichkeit gestattet es bestimmte Anweisungen wiederholt auszuf hren bis die bei UNTIL gegebene Bedingung erfolgreich gepr ft wird Eine Bedingung in diesem Fall eine Abbruchbedingung ist ein Vergleich zweier Werte wobei diese Werte auf gleich ungleich gr sser als gt und kleiner als lt gepr ft werden k nnen Zudem sind die Operatoren gr er gleich gt und kleiner gleich lt m glich Um mehr als zwei Bedingungen bei einer UNTIL Anweisung zu berp fen lassen sich mehrere Bedingungen mit den logischen Operatoren UND amp und ODER verkn pfen wobei der amp Operator nur TRUE zur ckgibt wenn alle
103. aben geschrie bener quivalenter Substring gefunden GETTOK Syntax GETTOK Token Stringausdruck Trennstring Token Z hler Beschreibung Die Tokenizer Funktion GETTOK liefert ein so genanntes Token aus einem Stringausdruck zur ck Ein Token ist ein Substring der durch ein Trennzeichen z B das Zeichen von anderen Tokens getrennt ist Als Trennzeichen Trenn string kann auch ein Stringausruck angegeben werden der mehr als 1 Zeichen enth lt GETTOK liefert als R ckgabe wert das Token von der bergebenen Token Position zur ck Beispiele EindeesalziTeseVerGnkseNrobN exe iik keoune Ir Zee repeat gertok eek exles lesune se Peor 4 UV echo Token an Posteion NH leoune I A Y 1ses Eok endif counti a Une Teak aE end Bemerkungen Wird das Ende des Strings erreicht gibt GETTOK das bis dahin gelesene Token zur ck sofern das letzte Zeichen kein Token Trenner ist wobei dies dann auch keine Rolle spielt Hat die Variable case_sensitivity den Wert 1 so ber cksichtigt GETTOK auch Token Separatoren als solche wenn diese sich von Gro Kleinschreibung her von der Schreibweise des gegebenen String Separators unterscheiden D h wenn der Token Separator in Kleinschreibung vorliegt und case_sensitivity den Wert 1 false hat so wird auch ein gro geschriebener Token Separator als solcher erkannt GETCHARAT Syntax GETCHARAT Zeichen Stringausdruck Zeichenposition Beschreibung Liefert
104. aber dem Benutzer die Auswahl eines Wertes aus einer bestimmten Anzahl von Werten zu erm glichen stellt RapidBATCH auch zwei leistungsstarke Dialoge zur Verf gung Die LISTBOX findet hierbei am h ufigsten Verwendung LISTBOX ist ein Dialog mit einer Listenauswahlm glichkeit die sehr vielseitig eingesetzt werden kann Ob als Programm Men Dateiauswahl oder f r andere Zwecke Das Anwen dungsspektrum f r den LISTBOX Dialog ist usserst breit und vielseitig gehalten Menueintrag 2 Men eintrag 3 Der LISTBOX Dialog bietet eine vielseitige und schnell realisierte Auswahlm glichkeit LISTBOX ben tigt zur Anwendung zwei Parameter Einmal einen Dialog Titel und eine so genannte Liste Solch eine Liste ist ein String dessen einzelne Elemente die sp ter in der LISTBOX angezeigt werden standardm ig durch Pipe Zeichen getrennt sind dieses Listentrennzeichen l sst sich global ber die Variable std_sep auch ndern Ein Array l sst sich als Liste nicht direkt bergeben kann aber mit Hilfe der Funktion arrayToList aus der ARRAY RB Funktionsbibliothek schnell und einfach in eine Item Liste f r den LISTBOX Dialog umgewandelt werden R ckgabewert der LISTBOX Funktion ist der ausgew hlte Wert aus der Liste Ist dieser Wert leer so wurde entweder kein Men eintrag ausgew hlt oder der Schlie en Button der LISTBOX bet tigt Ein einfaches Beispiel f r eine LISTBOX ist folgendes Script mit einer kleinen Auswahl rem Einfach
105. abpr fen Um eine Trennlinie in das Men einzubauen z B um viele Men eintr ge in kleine Gruppen zu trennen schreibt man einfach einen einzelnen Bindestrich als Men eintrag Beispiel traymenu eintrag Bitte w hlen Sie einen Eintrag aus Eintrag amp ljEintrag amp 2 Eintrag amp 3 B amp eenden TRAYMENU verwendet als Icon immer das Standard Icon der Applikation Bei interpretierten Scripts ist dies immer das Icon des RapidBATCH Interpreters bei compilierten Scripts das entsprechend hinzugelinkte Programmicon Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 31 von 138 k5 Benutzerhandbuch Mit Hilfe der vordeklarierten Variablen app_icon l sst sich allerdings auch eine externe ICO Datei als Icon benutzen app_icon setzt dabei ein Icon das f r alle Fenster der Anwendung gilt d h es l sst sich hier ber auch das Icon wel ches bei LISTBOX INFOBOX EDITBOX und INPUTBOX links oben erscheint mit ndern Wird app_icon auf einen Leerstring gesetzt wird automatisch das Standard Icon der Anwendung wieder benutzt Beispiel rem TRAYMENU unter Verwendung eines individuellen Programm Icons lapp iconii rer IgonssNorealeereonL traymenu eintrcagl Bitte w hlen Sie einen Eintrag aus Eintrag amp ljEintrag amp 2 Eintrag amp 3 B amp eenden 1 einercagi en echo Der gew hlte Men punkt lautet eintrag else echo Das Icon wurde an
106. arierten Variablen EditBox_Width und EditBox_Height in der Gr e angepasst werden ebenso ist auch die Positionierung des Dialogs auf dem Bildschirm mit den Variablen EditBox_X und EditBox_Y ohne weiteres m glich wobei auch hier eine automatische und bereits vordefinierte Zentrierung des Dialogs mit dem Wert 0 erm glicht wird Die Beschriftung der Buttons ist ber EditBox_Ok und EditBox_Cancel m glich Wenn man die Button Beschriftung auf einen Leerstring setzt wird der entsprechende Button einfach ausgeblendet so dass man z B eine EDITBOX mit nur einem Weiter Button programmieren kann wie in folgendem Beispiel die Funktionen OPENBOX und READFILE werden sp ter noch genauer besprochen rem Datei Anzeige Script mit der EDITBOX rem Dateiname abfragen openbox file Bitte Datei w hlen Textdateien txt ae ee N neie Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 29 von 138 k5 Benutzerhandbuch rem Datei lesen readfile text file 0 rem EDITBOX individualisieren und anzeigen Edi CBOR Ok ei EditBox_Cancel Weiter gt EditBox_wWidth 450 EditBox_Height 480 editbox text Inhalt von file text readonly Men s und Auswahlm glichkeiten Bisher haben Sie bereits einige M glichkeiten kennengelernt um Daten vom Benutzer einzulesen Diese Daten sind jedoch v llig frei vom Benutzer definierbar Um
107. aufrufen Bestes Beispiel w re hier das folgende Script echo Meldung 1 gosub testl echo Meldung 2 Raute lt testl echo Meldung 3 gosub test2 resume test2 echo Meldung 4 gosub itest resume test3 echo Meldung 5 gosub test4 resume lt Stest4 echo Meldung 6 resume end Die Meldungsfenster erscheinen in folgender Reihenfolge 1 3 4 5 6 2 Seit RapidBATCH 5 0 sind auch dynamische Spr nge via GOTO und GOSUB m glich Das bedeutet dass bei GOTO bzw GOSUB als Label auch eine Variable oder ein zusammengesetzter Wert angegeben werden kann zu dem ge sprungen wird Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 14 von 138 k5 Benutzerhandbuch Beispiel confirm answer Ja oder Nein goto answer 0 echo Sie haben JA angeklick halt 1 echo Sie haben NEIN angeklickt end Interessant werden diese dynamischen Spr nge u a noch etwas sp ter wenn es um benutzerdefinierte Dialoge geht Sie sind jedoch mit Vorsicht zu genie en da ein falsch zusammengesetzer Labelname zum sofortigen Verlassen des Scripts f hrt wenn das Label nicht im Script definiert ist Labels sollten aber nur dann verwendet werden wenn dies zwingend notwendig ist Vermehrt soll in RapidBATCH 5 mit Prozeduren und Funktionen gearbeitet werden welche Sie wie bereits er rtert sp ter genauer kennenlernen werden Arrays Kommen wir nun zu einer r
108. ax NEWREGKEY Hauptschl ssel Schl sselpfad DELREGKEY Hauptschl ssel Schl sselpfad Beschreibung NEWREGKEY legt einen neuen Schl ssel in der Registry an DELREGKEY l scht einen Schl ssel aus der Registry mitsamt Unterschl sseln Beide Anweisungen erwarten als Parameter einen Hauptschl ssel der als einer der folgenden Werte bergeben werden muss CLASSES_ROOT f r HKEY_CLASSES_ROOT CURRENT_CONFIG f r HKEY_CURRENT_CONFIG CURRENT_USER f r HKEY_CURRENT_USER LOCAL_MACHINE f r HKEY_LOCAL_MACHINE USERS f r HKEY_USERS DYN_DATA f r HKEY_DYN_DATA Beispiele newregkey CURRENT_USER Software Test if errorcode 0 echo Erstellen von HKEY_CURRENT_USER Software Test war erfolgreich endif delregkey CURRENT_USER Software Test if errorcode 0 echo L schen von HKEY_CURRENT_USER Software Test war erfolgreich endif end Bemerkungen Verwenden Sie GETREGVAL und LETREGVAL um Werte aus der Registry zu lesen oder Werte in die Registry zu schreiben GETREGVAL Syntax GETREGVAL Wert Datentyp Hauptschl ssel Unterschl ssel Wertbezeichner Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 108 von 138 k5 Sprachreferenz Beschreibung GETREGVAL liest einen Wert aus der Registry Parameterwerte sind der Datentyp des zu lesenden Registry Wertes welcher durch die Konstanten STRING Standard DWORD und BINARY
109. bMain ignoriert Beim ersten Aufruf eines EXT Befehls wird zuerst die DLL geladen und damit LibMain ausgef hrt dann wird die Funk tion gesucht und aufgerufen Bei weiteren EXT Befehlen die dieselbe DLL benutzen wird direkt die angegebene Funkti on gesucht und aufgerufen Die Funktionen die von RapidBATCH aufgerufen werden sollen m ssen wie folgt deklariert werden ne ellspeel diiliexponze eede el Funke tons Name Mehar i output Re han oe ne pucken ta output ist dabei ein Zeiger auf die R ckgabevariable input ist ein Zeiger auf ein Array mit Eingabeparametern und in put_count enth lt die Anzahl der bergebenen Eingabeparameter Der f r den R ckgabewert ben tigte Speicher muss mit der Windows API Funktion LocalAlloc angefordert werden Dieser Speicherbereich wird von RapidBATCH automa tisch wieder freigegeben um Speicherlecks zu verhindern Im Fehlerfall kann output auch auf char NULL gesetzt werden In diesem Fall liefert die EXT Funktion einen leeren String zur ck Der R ckgabewert der Funktion wird in der Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 63 von 138 h Benutzerhandbuch RapidBATCH Variablen errorcode gespeichert Im Erfolgsfall sollte daher 0 Null zur ckgegeben werden oder im Feh lerfall eine positive Zahl als Fehlernummer Im Verzeichnis DLL DemoDLL des RapidBATCH Installationsverzeichnisses findet sich eine Beispiel DLL DemoDLL dll mit Que
110. befindet sich an Position pos echo Die Markierung ist len Zeichen lang rem Pfad zu dem Bild eines IMAGE Widgets ermitteln getdialog imagefile myDialog Imagel IMAGE echo Die Bilddatei befindet sich hier imagefile Bemerkungen Die Anweisung NEWDIALOG erm glicht das Erzeugen von Widgets Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 129 von 138 RM H Sprachreferenz Debugger Kontrollanweisungen DEBUGMODE Syntax DEBUGMODE Modus Beschreibung Setzt den RapidBATCH Debugger auf einen von drei Debug Modi M gliche Parameterwerte sind STEP f r schrittwei ses Debugging TRACE f r Verfolgungsdebugging und NONE um den Debugger auszuschalten Der Debugger kann somit vom Script selber mitten im Programm z B an einer kritischen Stelle gestartet oder beendet werden RapidBATCH Script Debugger Step Modus RapidBATCH Echo l Hello World Script C jmksfirb5 debugtest ib Zeile 7 echo Hello World Beispiele echo Ein Debug Test rem Debugger starten debugmode step rem Weiter geht s im Debug Modus echon HeTORWor Igi ang Bemerkungen Diese Anweisung ist nur im Interpreter der RapidBATCH Professional Edition enthalten DEBUGMODE wird vom Compiler ignoriert und ist nicht in compilierten Programmen verf gbar Sie k nnen mit der Umgebungsvariablen RB_DEBUGMODE bereits vor dem Starten des Int
111. beim L schen von Registry Wert end Bemerkungen Wenn das L schen des Wertes fehlschlug erh lt errorcode den Wert 1 ansonsten 0 Verwenden Sie LETREGVAL und GETREGVAL um Registry Werte zu lesen bzw zu schreiben SENDKEYS Syntax SENDKEYS Fenstertitel Fernsteuerungsbefehle Beschreibung Sendet Tastaturbefehle an das Fenster mit dem jeweiligen Fenstertitel Diese Anweisung erm glicht somit das Fern steuern beliebiger Windows Programme mit Hilfe einer einfach definierten Makrosprache Im Grunde ist diese Fernsteuerungs Makrosprache SENDKEYS Script sehr einfach aufgebaut Man muss die Tasten kombinationen so angeben wie man sie selber dr cken w rde da RapidBATCH hier die Eingabe eines Benutzers simu liert d h so tut als ob der Benutzer das fernzusteuernde Programm bedient Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 111 von 138 k5 Sprachreferenz e Einfache Buchstaben Zahlen und Satzzeichen also W rter oder ganze Texte werden direkt angegeben wie z B abc oder Hallo Welt e _Sondertasten wie STRG ALT SHIFT ENTER etc werden geklammert und mit der englischen Bezeichnung angegeben Wird z B das Kommando Zeile 1 enter Zeile 2 per SENDKEYS an eine Anwendung gesendet z B einen Texteditor so wird ein Zeilenumbruch zwischen Zeile 1 und Zeile 2 erzeugt e Um eine Taste gedr ckt zu halten wird ihr ein Zirkumflexzeichen vorangestel
112. bleibt dann bis zum Programmende im Speicher und wird dann zusammen mit der Anwendung automatisch entladen Jede DLL muss eine Funktion LibMain enthalten Diese Funktion wird automatisch beim Laden und Entladen der DLL aufgerufen Die DLL kann in dieser Routine z B bei Laden Variablen initialisieren oder beim Beenden benutzte Objekte wieder freigeben oder tempor re Dateien l schen Die Funktion LibMain muss beim Laden der DLL den Wert TRUE zur ckgeben sonst wird der Ladevorgang abgebrochen und die DLL wird sofort wieder entladen RapidBATCH w rde dann errorcode 1 liefern so als wenn die DLL nicht gefunden wurde Beim Entladen wird der R ckgabewert der Funktion LibMain ignoriert Beim ersten Aufruf eines EXT Befehls wird zuerst die DLL geladen und damit LibMain ausgef hrt dann wird die Funktion gesucht und aufgerufen Bei weiteren EXT Befehlen die dieselbe DLL benutzen wird direkt die angegebene Funktion gesucht und aufgerufen Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 83 von 138 MR 71 Sprachreferenz Build in Funktionen GETCHR GETASC Syntax GETCHR Zeichen ASCII Wert GETASC ASCII Wert Zeichen Beschreibung GETCHR gibt das durch den numerischen ASCII Code spezifizierte ASCII Zeichen zur ck GETASSC liefert zu dem ersten Zeichen eines Stringausdrucks den dazugeh rigen ASCII Code zur ck Beispiele getchr zeichen 65 echo Geholtes Zeichen
113. c 64 0000 00 00 00 00 00 00 00 Hello World 000014 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 O0 00 e a a e aa 000028 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 lt smni an eaaa en 00003c 00 00 00 00 I00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 p n aaeeea aa 000050 00 00 00 00 00 00 00 00 00 00 00 00 100 00 00 00 00 00 00 55 oc ananena iera U 000064 6e 64 20 64 61 73 20 69 73 74 20 65 69 6e 20 77 65 69 74 65 nd das ist ein weite 000078 72 65 72 20 42 69 be e4 72 2d 53 63 68 72 65 69 62 76 6f 72 rer Bin r Schreibvor 00008c 67 61 6e 67 20 3b 29 __ gang Inhalt der Datei BINARY TXT in einem Hex Editor Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 42 von 138 k5 Benutzerhandbuch Deutlich zu sehen ist dass unser zweiter bin rer Schreibvorgang bei Hex Offset 64 beginnt also Dezimal der Offset 100 Der Bereich zwischen unserem Hello World und dem Text Und das ist ein weiterer Bin r Schreibvorgang wird mit dem ASCIlI Zeichencode 0 aufgef llt was soviel hei t wie nichts NUL ACHTUNG Bei Windows 95 98 und ME bzw FAT und Derivate formatierten Speichermedien wurde beobachtet dass anstatt ASCII Zeichencode 0 der Inhalt von gel schten Daten auf der Festplatte in der Datei auftauchen k nnen da PUTFILE die Daten ja bin r einfach irgendwo auf die Festplatte an die angegebene Position schreibt Der Grund daf r ist
114. daten setzen und ver ndern externe Programme starten Registry bearbeiten Windows herunterfahren oder sperren Programme fernsteuern Mausklicks simulieren Multimedia Inhalte abspielen und Dokumente und Inter net URLs aufrufen Des weiteren stehen Ihnen zur Interaktion mit dem Benutzer zehn vielseitig einsetzbare Benutzer Interaktionsdialoge zur Verf gung Sie k nnen sogar v llig individuelle Dialogfenster mit ber 10 verschiedenen Fensterelementen selber pro grammieren und gestalten Als eine moderne prozedurale Programmiersprache bietet Ihnen RapidBATCH auch auf der programmiertechnischen Ebene alles was Sie zur schnellen L sung Ihrer Software Probleme ben tigen Klar strukturierte und flexible Syntax einfach zu erlernende Befehle und Funktionen Iterationen Schleifen zahlreiche build in Funktionen zur Verarbeitung von Daten benutzerdefinierbare Prozeduren und Funktionen Rekursion Selbstaufruf von Prozeduren komplett dyna mische Arrays mit bis zu 9 Dimensionen und die Aufteilung von gr eren Scripts in mehrere Dateien welche dann mit tels Include Anweisungen zur Laufzeit virtuell zu einem Script zusammengef hrt werden RapidBATCH ist f r Neulinge extrem simpel zu erlernen bietet aber auch professionellen Programmierern eine exzellen te Basis zur schnellen und unkomplizierten Entwicklung von Softwaretools f r den t glichen Gebrauch RapidBATCH Scripts k nnen beispielsweise hingegen zu gr eren Programmiersprachen durch e
115. definiert wird auch repr sentiert durch die numerischen Werte 0 1 und 2 der Hauptschl ssel ein Unterschl ssel und der Bezeichner des Registry Wertes dessen Wert ausgelesen werden soll Als Hauptschl ssel sind folgende Werte als build in Konstanten definiert CLASSES_ROOT f r HKEY_CLASSES_ROOT CURRENT_CONFIG f r HKEY_CURRENT_CONFIG CURRENT_USER f r HKEY_CURRENT_USER LOCAL_MACHINE f r HKEY_LOCAL_MACHINE USERS f r HKEY_USERS DYN_DATA f r HKEY_DYN_DATA Der Unterschl ssel gibt den Pfad des Unterschl ssels jeweils getrennt durch Backslash an Als Wertbezeichner wird der in der Registry definierte Bezeichner angegeben R ckgabewert ist der gelesene Wert im entsprechenden Datentypsformat Binary Werte werden durch eine mit dem Standard Separator separierten Liste an ASCII Zeichencodes zur ckgegeben wie dies bei der Funktion GETFILE der Fall ist Beispiele rem Wert in Registry schreiben letregval STRING CURRENT_USER Software jmksf RapidBATCH HelloWorld Hello World by RapidBATCH if errorcode 0 echo Wert wurd rfolgreich geschrieben else echo Fehler beim Schreiben halt endif rem Wert wieder auslesen getregqval wert STRING CURRENT_USER Software jmksf RapidBATCH HelloWorld if errorcode 0 echo Gelesener Wert wert else cho Fehler beim Lesen des Wertes endif rem Auf umen delregval CURRENT_USER Software jmks f Ra
116. dem Widget Label ber das das Widget identifiziert wird einen so gennannten Attribut Bezeichner f r das Attribut das gesetzt oder ge ndert werden soll und einen entprechenden Wert oder Attributsparame ter der f r das jeweilige Attribut gesetzt werden soll Dieser Wert ist immer abh ngig vom jeweiligen Attribut welches angegeben wurde Die folgende Auflistung beschreibt die verschiedenen Attribute erkl rt die m glichen Attributsparameter Werte und gibt Auskunft ber die unterst tzten Widgets f r jedes Attribut kein Widget unterst tzt alle m glichen Attribute CAPTION Setzt den Titel eines Widgets Widgets DIALOG BUTTON LABEL RADIO OPTION GROUP MENU Ein beliebiger Text CHECKED Status ob das Widget gehakt ist RADIO OPTION MENU o o 0 gerak acwm S ENABLED Erm glicht das De Aktivieren von Widgets Deaktivierte Widgets sind zwar sichtbar jedoch ausgegraut und nicht benutzbar Widgets DIALOG BUTTON IMAGEBUTTON INPUT EDIT EDIT_LINEWRAP LABEL OPTION RADIO GROUP COMBO STATIC_COMBO LIST LIST_SORTED LIST_MULTI LIST_MULTISORTED PWD MENU PROGRESS 0 gehakt 1 nicht gehakt FOCUS Setzt den Eingabefokus auf das Dialogelement Widgets DIALOG BUTTON IMAGEBUTTON INPUT EDIT EDIT_LINEWRAP OPTION RADIO COMBO STATIC_COMBO LIST LIST_SORTED LIST_MULTI LIST_MULTISORTED PWD Nicht erforderlich Leerstring Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer A
117. durch Kommata getrennt sein m ssen angegeben werden wobei auch eine parameterlose Prozedur definiert werden kann in solch einem Fall ist kein Doppelpunkt erforderlich Nach der PROC Anweisung folgt dann der entsprechende Code den die Prozedur enth lt Ausgeleitet wird dieser Code mit der Anweisung ENDPROC Hinter ENDPROC kann dann eine neue Prozedurdefinition oder normaler Script Code folgen Auch hier gilt Zwischen den Anweisungen PROC und ENDPROO sollte der Script Code zur besseren Lesbarkeit einger ckt werden Ein einfaches Beispiel stellt nun folgendes Script dar Es definiert eine parameterlose Prozedur test welche ein Mel dungsfenster ausgeben soll rem Prozedur Demoscript Proc teste echo Dies ist die Prozedur TEST endproc echo Vor der Prozedur test echo nach der Prozedur echo Und noch einmal test end Wenn wir nun eine Prozedur mit Parametervariablen definieren wollen m ssen diese wie bereits oben beschrieben als Parameterliste beim Schl sselwort PROC angegeben werden Die dort definierten Variablennamen werden beim Aufruf der Prozedur deklariert und bei der Beendigung der Prozedur wieder aus dem Speicher entfernt Dies nennt man lokale Variablendeklaration da diese Variablen und auch alle Variablen die in der Prozedur erzeugt werden nur zur Laufzeit der Prozedur verwendet werden k nnen Wir werden sp ter noch genauer auf den Unterschied zwischen lokalen und globalen Variablen eingehen
118. e Auswahl mit einer LISTBOX listbox auswahl Men Men eintrag 1 Men eintrag 2 Men eintrag 3 if auswahl echo Kein Element ausgew hlt else echo Gew hltes Element ist auswahl endif end R Die LISTBOX ist ebenfalls sehr anpassungsf hig Aquivalent zu den bisher vorgestellten Dialogen l sst sich auch die LISTBOX mit Hilfe der Variablen ListBox_Width und ListBox_Height in der Gr e ver ndern ListBox_X und List Box_Y erm glichen die individuelle Positionierung des Dialoges Defaultwert ist auch hier 0 zur automatischen Zentrie rung Mit ListBox_Ok l sst sich auch der Text auf dem OK Button der LISTBOX ver ndern Um die Auswahl von mehr als einem Eintrag aus einer LISTBOX zu erm glichen bietet RapidBATCH ausserdem die Variable ListBox_MultiSel Diese ist standardm ig auf den Wert 1 gesetzt was soviel bedeutet wie Keine Mehr fachauswahl Setzt man den Wert auf 0 lassen sich in der LISTBOX mehr als ein Eintrag ausw hlen wenn n tig auch alle In diesem Fall wird ebenfalls im Fall von mehreren selektierten Eintr gen eine Liste von durch Pipe Zeichen bzw das durch die Variable std_sep definierte Zeichen von einander getrennten Werten zur ckgeliefert Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 30 von 138 k5 Benutzerhandbuch Folgendes Beispiel demonstriert die Verwendung der o g Variablen Beobachten Sie bitte auch den R
119. e Funktion nicht unterst tzt Wenn keine Fehler auftraten erh lt errorcode den Wert 0 SHUTDOWN Syntax SHUTDOWN Modus Beschreibung Beendet Windows und rebootet oder f hrt den PC herunter Als Modus muss einer der folgenden numerischen Werte oder Build in Konstanten angegeben werden 0 SHUTDOWN PC herunterfahren 1 REBOOT PC rebooten 2 POWEROFF PC herunterfahren und ausschalten falls dies Hardware bedingt m glich ist 3 LOGOFF Aktuellen Benutzer ausloggen und Anmeldebildschirm anzeigen Beispiele echo Restarting computer shutdown reboot end Bemerkungen errorcode erh lt im Fehlerfall den Wert 1 ansonsten 0 Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 115 von 138 k5 Sprachreferenz Benutzerdefinierte Dialoge NEWDIALOG Syntax NEWDIALOG Widget Label Widget Typ Startkoordinaten Beschreibung Erzeugt ein neues Dialog Widget NEWDIALOG kann sowohl dazu verwendet werden ein Dialog Basisfenster zu erzeugen als auch ein Dialog Childwidget wie z B Buttons oder Eingabefelder NEWDIALOG ben tigt als Parameter ein Widget Label unter dem das Widget sp ter angesprochen werden kann den Widget Typ siehe unten sowie die Widget Startposition in der Form X Y H helBreite wobei all diese Angaben in Pixel anzugeben sind Die Separierung der einzelnen Werte erfolgt durch das in std_sep definierte Separationszeichen standardm ig
120. e Variable zugreifen Theoretisch k nnte solch eine Kette von Pointern bis ins Unendliche fortgef hrt werden Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 24 von 138 k5 Benutzerhandbuch Build in Dialogfenster Meldungen und Statusausgaben RapidBATCH ist mit einer Vielzahl von build in Dialogen ausgestattet die individuell angepasst und optimal in Ihren Scripts eingesetzt werden k nnen Bevor Sie anfangen selber komplett eigene Dialoge in RapidBATCH zu kreieren was auch m glich ist sollten Sie erst einmal schauen ob bereits die RapidBATCH build in Dialoge f r Ihren Anwen dungsfall ausreichen Der Vorteil bei den build in Dialogen von RapidBATCH besteht n mlich darin dass Sie nur eine einzige Anweisung oder Funktion aufrufen m ssen um den kompletten Dialog zu starten Bei selbst programmierten Dialogfenstern wozu wir in einem sp teren Kapitel kommen werden m ssen Sie f r jedes Ereignis mit oder auf dem Dialog eine entsprechende Routine programmieren was dann wiederum mehr Aufwand erfordert Dieses Kapitel stellt nun die von RapidBATCH bereitgestellten build in Dialoge vor und zeigt auf wie diese angewendet und angepasst wer den k nnen Meldungsfenster so genannte Messageboxes bieten die einfachste Art dem Benutzer Meldungen oder Daten zu pr sentieren oder auch um einfache Abfragen bereitzustellen Bereits kennengelernt haben Sie die ECHO Anweisung mit der Sie ein
121. e hier msgbox Meldung Hello World 0 Welcher der angezeigten Buttons gedr ckt wurde wird in die vordeklarierte Variable errorcode gespeichert im obigen Beispiel immer 0 weil ja nur ein Button zur Auswahl steht errorcode ist eine Variable die von vielen Anweisungen in RapidBATCH verschiedene Status oder Fehlercodes erh lt Eben hier welcher Button gedr ckt wurde Anmerkung Die MSGBOX Anweisung kann auch als Funktion aufgerufen werden Der Wert der dann an errorcode bergeben wird wird stattdessen bei dieser Methode in die entsprechende R ckgabe Variable gespeichert MSGBOX Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 25 von 138 k5 Benutzerhandbuch sollte daher vermehrt als Funktion eingesetzt werden kann aber nat rlich auch weiterhin als Anweisung wie hier be schrieben aufgerufen werden Ein Messagebox Style setzt sich aus einem so genannten Button Wert und einem Icon Wert zusammen Zudem l sst sich auch die Position des Eingabefokus welcher Button gedr ckt wird wenn der Benutzer nur die Entertaste bet tigt mit diesem Wert bestimmen M gliche Button Styles f r Messageboxes sind Style Beispiel Button Style jew R ckgabewert an errorcode bzw Return ID variable in Klammern 0 OK 1 OK 1 CANCEL 2 MSGBOX Style 1 i Cancel 2 CANCEL 3 RETRY 4 IGNORE 5 MSGBOX Style 2 3 YES 6 NO
122. e mit zwei anstatt mit einem Zeichen einzuleiten Diese heissen carriage return und line feed ASCIl Zeichencodes 13 und 10 daher auch crIf Carriage Return Line Feed Diese beiden Begriffe kommen noch aus der Urzeit der Computer wo die Ausgabe aller Programme noch vor nehmlich auf Nadeldruckern erfolgte daher carriage return was bersetzt soviel heisst wie Schreibkopfr cklauf und line feed was nicht mehr als Zeilenvorschub heisst I d R reicht meist aber ein einfaches new_line welches nur ein line feed bewirkt um einen Zeilenumbruch darzustellen tab enth lt ein Tabulatorzeichen pipe das Zeichen wel ches auch als RapidBATCH Standard Separator bei Listen verwendet wird Die Variable quot enth lt ein einfaches Anf hrungszeichen welches in RapidBATCH selber zur Ein und Ausleitung von Strings im Script Code verwendet wird und daher nicht direkt ausgegeben werden kann Um dieses Zeichen selber in einem String zu verketten verwenden Sie quot welche dieses Zeichen enth lt rem Zeilenumbr che echo Dies ist new line ein Zeilenumbruch in lerlf zwei Versionen rem Tabulatoren echo teint tab Tabulator rem Pipe Zeichen echo Das als std_sep definierte Zeichen ist Standardm ig ein pipe PoE rem Einfaches Anf hrungszeichen echo echo quot Dies ist der Code f r ein infache Ausgabe quot crlf end Bereits in vorherigen Absch
123. eBox_DefFileExt txt rem Dateinamen abfragen savebox dateiname Datei speichern als Textdateien txt echo Eingegebener Dateiname mit Erweiterung dateiname end Ordner suchen Bitte w hlen Sie ein Verzeichnis O addins AppPatch H Cache Config 5 Connection Wizard O Crystal O cursors H Debug H Downloaded Installations Downloaded Program Files H Driver Cache gt Bequeme Verzeichnisauswahl mit dem Ordner suchen Dialog der FOLDERBOX Funktion Neben OPENBOX und SAVEBOX bietet RapidBATCH auch einen Dialog zur Auswahl von Verzeichnissen an Die FOL DERBOX Parameter sind hierbei ein Aufforderungstext sowie ein optionaler Basis Pfad der automatisch im Dialog angew hlt wird Folgendes Script zeigt das Windows Verzeichnis in einem Verzeichnis Auswahldialog an Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 34 von 138 7 Benutzerhandbuch rem Verzeichnisauswahl folderbox verzeichnis Bitte w hlen Sie ein Verzeichnis windir rem Ausgabe des Verzeichnispfades falls dieses gew hlt wurde if verzeichnis echo Pfad zum gew hlten Verzeichnis verzeichnis else echo Sie haben kein Verzeichnis ausgew hlt endif end Wird hier der Abbrechen oder Schlie en Button des Dialogs gew hlt gibt die Funktion einen Leerstring zur ck Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer
124. echo Fehler beim Aufruf von lt rbxGetTickCount gt in DemoDLL dl11 halt endif rem Zeitdifferenz berechnen umrechnen in Sekunden Differenz StopTime StartTime 1000 rem Ergebnis anzeigen Der Stil 64 zeigt das Symbol i rem vor der Meldung an msgbox DemoDLL rb Sie haben Differenz Sekunden gebraucht um sich zu ent Scheiden aro oA rem Jetzt wird eine Liste der sichtbaren Fenster erstellt rem mit der Funktion rbxCreateWindowList Als Trennzeichen rem wird ein Zeilenumbruch new_line verwendet damit rem das Ergebnis mit einer MessageBox angezeigt werden kann ext WindowList DemoDLL dl1 rbxCreateWindowList new_line rem Auf Fehler berpr fen if errorcode 0 echo Fehler beim Aufruf von lt rbxCreateWindowList gt in DemoDLL d11 halt endif rem Liste mit einer MessageBox anzeigen msgbox DemoDLL rb Es wurden folgende Fenster gefunden new_line new_line windowList 64 rem Jetzt wird noch die Fehlerpr fung getestet dazu wird die rem Funktion rbxCreateWindowList ohne Parameter aufgerufen Das sollte rem den Fehler 11 liefern s DemoDLL c ext WindowList DemoDLL dl1 rbxCreateWindowList rem Auf Fehler berpr fen ir lerrozcede 7m echo Unerwarteter Fehlercode beim Aufruf von lt rbxCreateWindowList gt in DemoDLL d11 halt endif rem Korrekten Fehlercode melden msgbox DemoDLL rb Die Parameterpr fung in lt rbxCreateWi
125. ei der Men zuweisung automatisch generierte Men label welches im Format Dialogname Menu_Men punkttext generiert wird und dem CHECKED Attribut welches auf true 0 oder false 1 gesetzt werden kann Am Ende der Prozedur rufen wir direkt nochmal die oben implementierte Prozedur berechne _Zielwert auf um direkt beim Ausw hlen eines Men punktes die Zahl die im Dezimalfeld steht in das ausgew hlte Zahlensystem umzurechnen Ausserdem setzen wir vorher noch die vorhin definierte Variable aktuelle_basis die wiederum von berechne_Zielwert und berechne_Dezimalwert verwendet wird auf das entsprechend bergebene Zahlensystem rem Implementation der Prozedur setze_Zahlensystem proc setze _Zahlensystem zahlensystem rem H ckchen aus Men punkten entfernen letdialog umrechner Menu_Dezimal gt amp Oktal checked false letdialog umrechner Menu_Dezimal gt amp Hexadezimal checked false letdialog umrechner Menu_Dezimal gt amp Bin r checked false rem Zahlensystembezeichnung vor dem Eingabefeld sowie H ckchen im Men setzen if zahlensystem bin letdialog umrechner 1l_konvert caption Bin rwert letdialog umrechner Menu_Dezimal gt amp Bin r checked true elseif zahlensystem okt letdialog umrechner 1l_konvert caption Oktalwert letdialog umrechner Menu_Dezimal gt amp Oktal checked true elseif zahlensystem hex letdia
126. eilstring kopiert werden soll der L n ge Parameter die Anzahl der Zeichen ab der Startposition die in den Teilstring kopiert werden sollen Beispiele name Arnold Schwarzenegger rem 123456789012345678901 Zeichenpositionen copyvar nachname name 8 14 copyvar vorname name 1 6 Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 86 von 138 k5 Sprachreferenz echo nachname vorname end Bemerkungen Wenn Sie als Start Parameter den Wert 1 bergeben werden L nge Zeichen von rechts aus dem String gelesen und als Teilstring zur ckgegeben CNTVAR Syntax CNTVAR Anzahl Stringausdruck Suchstring Beschreibung Gibt die Anzahl der im Stringausdruck enthaltenen Suchstring Ausdr cke zur ck Beispiele readfile text C jmksf rb5 readme txt 0 entvar anzahl text RapidBATCH echo Die Datei beinhaltet anzahl X das Wort RapidBATCH end Bemerkungen Hat die Variable case_sensitivity den Wert 1 so z hlt CNTVAR auch Stringmuster die sich von der Gro Kleinschreibung her von der Schreibweise des gegebenen Suchstrings unterscheiden D h wenn der Suchstring z B in Kleinschreibweise vorliegt und case_sensitivity den Wert 1 false hat so wird auch ein in Gro buchstaben geschrie bener quivalenter Substring mitgez hlt REPLACEVAR Syntax REPLACEVAR Ergebnisstring Stringausdruc
127. ein Beispiele include dialog rb rem Ein statischer GOSUB Aufruf ij or repeat E e n gosub square until i 10 rem Auf zum n chsten Beispiel goto weiter lt square eco al s FE Bet al S El resume weiter rem Ein dynamischer GOSUB Aufruf mit einer Variablen rem Zur Laufzeit sieht dieses Beispiel genauso aus wie das von GOTO rem allerdings ist die Umsetzung hier komplett anders btnmenu geschwindigkeit W hlen Si in Geschwindigkeit 30 km h 60 km h 120 km h gosub geschwindigkeit echo Weiterhin gute Fahrt mit Ihren geschwindigkeit Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 78 von 138 k5 Sprachreferenz halt 30 km h echo Das ist aber sehr langsam resume 60 km h echo Das ist ganz okay resume 120 km h echo SEHR SCHNELL Wollen Sie ein Rennen fahren resume Bemerkungen Ein RESUME muss nicht gegeben sein In solch einem Fall ist GOSUB quivalent zu GOTO Wird ein RESUME ohne ein vorheriges GOSUB angegeben wird dieses ignoriert und die Scriptausf hrung hinter RESUME fortgesetzt In RapidBATCH 5 wird von GOSUB RESUME Konstruktionen abgeraten da man hier Zugriff auf die weitaus professio nelleren M glichkeiten der modernen prozeduralen Programmierung mit Hilfe der Anweisungen PROC ENDPROC oder FUNC ENDFUNC hat GOSUB RESUME Konstruktionen k nnen aber bei der Implementierung vo
128. eld mehrzeiliges Eingabefeld usw sowie die Pixelkoordinaten und dimensionen um das Widget zu platzieren Die Koordinaten werden dabei durch den bereits bekannten Standard Listenseparator normalerweise ein Zeichen Pipe als String in der Form X Koordinate Y Koordinate BreitelH he angegeben In unserem Beispielscript erzeugen wir also mit der Anweisung newdialog myDialog DIALOG 1 1 300 80 ein neues Widget vom Typ DIALOG sprich ein Dialog Basisfenster mit einer Breite von 300 Pixel und einer H he von 80 Pixel am linken oberen Bildschirmrand X und Y Koordinaten 1 1 Dieses Dialogelement wird unter dem Namen myDialog angelegt ber den wir sp ter auf das Element zugreifen k nnen Die zwei darauffolgenden NEWDIALOG Anweisungen newdialog myDialog Eingabe INPUT 10 1 273 25 newdialog myDialog Los BUTTON 80 27 140 25 erstellen ein einzeiliges Eingabefeld Typ INPUT und einen Button Typ BUTTON auf unserem Dialog Basisfenster myDialog Dass diese Widgets auf dem Basisdialog myDialog platziert werden ist an der Voranstellung von myDialog beim Widget Label erkennbar Die Widgets werden daher unter genau diesem Dialoglabel angelegt Sinn und Zweck des ganzen ist dass jedes Dialogelement auf einem Dialog einmalig d h mit einem einmaligen Namen sein muss denn es k nnen auch zwei oder mehr Dialogfenster zur selben Zeit angezeigt werden Diese Dialogelemente werden als Child Elemente
129. emo dus SHOW Verzeichnisoperationen Zum Erstellen Wechseln und L schen von Verzeichnissen stellt RapidBATCH drei Anweisungen zur Verf gung MKDIR CHDIR und RMDIR Diese sind quivalent zu den gleichnamigen DOS Kommandos Mit folgender Zeile erzeugen wir ein neues Verzeichnis C wale mkdir C wale RapidBATCH legt auch bergeordnete Verzeichnisse mit MKDIR an wenn wir einen Pfad angeben der nicht existiert Wenn wir also die Zeile mkdir C i wale zahnwale schwertwal ausf hren und weder der Pfad C wale noch C wale zahnwale existiert legt RapidBATCH alle drei Verzeichnisse auto matisch hinereinander an M chten wir nun das Verzeichnis wechseln verwenden wir die CHDIR Anweisung chdir C wale zahnwale schwertwal Ob unser Verzeichniswechsel erfolgreich war oder nicht k nnen wir anhand der vordeklarierten Variablen errorcode berpr fen Sowohl MKDIR als auch CHDIR und RMDIR geben bei einem Fehler den Wert 1 false an errorcode ansonsten den Wert 0 true zur ck Wir k nnen also wie folgt herausfinden ob unser Verzeichnis existiert oder nicht chdir C wale zahnwale schwertwal if errorcode 1 echo Verzeichniswechsel fehlgeschlagen else Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 37 von 138 k5 Benutzerhandbuch echo Verzeichniswechsel erfolgreich endif Mit RMDIR l schen wir ein Verzeichnis wieder Das zu l schende Verze
130. en Cursor auf Zeichen 15 ohne Markierung STATUSBAR Erzeugt eine Statusbar auf einem Dialogfenster Statusbars k nnen Statusinformationen zum Programm annehmen und in mehrere Bereiche abgeteilt werden Wird nur ein Bereich ben tigt wird Statusbar auf einen entsprechenden String Wert gesetzt Sollen mehrere Bereiche erzeugt werden so wird eine Liste separiert durch Pipe Zeichen in folgendem Format bergeben Text im Bereich Gr e des Bereichs beginnend vom linken Rand des Dialogfensters in Pixel Soll nun ein weiterer Bereich folgen wird dieser einfach hinter den ersten geh ngt Wird das STATUSBAR Attribut eines Basisdialoges auf leer gesetzt wird die Statusbar vom Dialog entfernt DIALOG ee Statusbar Descriptor STYLE Setzt ein Style f r ein Dialogfenster Hierbei gibt es folgende Styles STANDARD Ein Dialogfenster mit Schlie en Minimieren und Maximieren Button sowie mit Systemmen DIALOG Ein Dialogfenster mit Schlie en Button und Systemmen SINGLE Ein Dialogfenster mit Schlie en Button Minimieren Button und Systemme n TOOL Ein Dialogfenster im Toolwindow Stil mit Schlie en Button skalierbar STATIC_TOOL Ein Dialogfenster im Toolwindow Stil nicht skalierbar statische Gr e DIALOG o U O Parameterwerte STANDARD DIALOG SINGLE TOOL STATIC_TOOL TEXT Setzt den Textbereich eines Eingabe Dialogelements PWD Widgets EDIT EDIT_LINEWRAP INPUT COMBO Ein beliebiger Text TOOLTIP Setzt einen Toolti
131. en Elemente und Spracheigenschaften die RapidBATCH bietet Des weiteren steht Ihnen jedoch zur detaillierten Erg nzung aller Sprachelemente eine ausf hrliche und bersichtliche Befehls und Funkti onsreferenz zu allen RapidBATCH Programmieranweisungen und Funktionen zur Verf gung Wir w nschen Ihnen viel Spass und Erfolg beim Programmieren Danke dass Sie sich f r RapidBATCH entschieden haben Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 3 von 138 MR h Benutzerhandbuch Was ist neu in Version 5 Mit der neuen Version 5 der Scriptsprache RapidBATCH beginnt eine neue ra in der erfolgreichsten Produktreihe der Firma J M K S F Software Technologies RapidBATCH 5 setzt auf einer komplett neu entwickelten Technologie und dem Know How von RapidBATCH 4 auf und wurde innerhalb der fast zweij hrigen Entwicklungs und Testphase komplett berarbeitet und stark erweitert Rapid BATCH ist jetzt quasi nicht mehr nur als Batch und Automatisierungssprache geeignet sondern gleichzeitig auch ein leistungsstarkes und effizientes Programmiersystem f r kleinere und gr ere Anwendungen aller Art Hier die neuen kaum zu bertreffenden Features von RapidBATCH 5 0 hingegen zu RapidBATCH 4 4 im berblick Beachten Sie bitte dass einige der neuen Features nicht auf die kostenlose Personal Edition von RapidBATCH zutref fen J 60 schnellere Script Ausf hrung als in RapidBATCH 4 4 dank
132. enster von denen jedoch nur das erste und das dritte angezeigt werden Nach dem ersten ECHO springen wir hier einfach via GOTO zu dem Label ende Labels auch Sprungmarken genannt sind direkt im Code durch ein vorangestelltes Prozent Zeichen gekennzeichnet und k nnen jeden beliebigen Namen haben auch mit Leer und Sonderzeichen echo Meldung 1 goto ende echo Meldung 2 lt ende echo Meldung 3 end Ausserdem gibt es seit RapidBATCH 4 0 auch die M glichkeit sehr einfache Unterprogramme so genannte Subs zu entwickeln Dies sind keine wirklichen Prozeduren wie solche auf die ich sp ter noch genauer eingehen werde sondern Code Bl cke die mit einem Label beginnen und mit einer RESUME Anweisung enden Bei Ausf hrung von RESUME wird das Script hinter dem letzten GOSUB Aufruf fortgef hrt d h das Unterprogramm kann von verschiedenen Positio nen aus aufgerufen werden und wird nach dem RESUME wieder an der jeweiligen Stelle fortgef hrt von der es aufgeru fen wurde Folgendes Beispiel nimmt die Zahlen 1 bis 10 zum Quadrat ti 11 repear gosubiiguadr ari BE se Ya timeni fa gt VO halt rem Sub quadrat lt quadrat rs Kl E echo i 2 Hm k resume end Die GOSUB Anweisung springt hier genau wie GOTO zu einem Label hier quadrat Beachten Sie bitte dass man diese Prozeduraufrufe auch beliebig ineinander verschachteln kann d h Subs k nnen wiederum andere Subs oder sich selbst rekursiv
133. er dezimal text Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 58 von 138 J Benutzerhandbuch if dezimal rem Wert berechnen mit der decimal_to_base Bibliotheksfunktion decimal_to_bas konvert dezimal aktuelle_basis if konvert 1 konvert Fehleingabe endif letdialog umrechner konvert text konvert endproc rem Implementation der Prozedur berechne Dezimalwert proc berechne _Dezimalwert dec dezimal konvert rem Dezimalwert aus Zahlensystemwert errechnen getdialog konvert umrechner konvert text ie konvert er zn rem Wert berechnen mit der base_to_decimal Bibliotheksfunktion base_to_decimal dezimal konvert aktuelle_basis if dezimal 1 dezimal Fehleingabe endif letdialog umrechner dezimal text dezimal endproc Bevor wir uns auch noch die M he machen und sp ter in der Ereignisbehandlung drei mal dasselbe f r jeden Umrech nungsfall den man im Men setzen kann programmieren entwickeln wir noch eine weitere Prozedur set ze Zahlensystem der wir als Parameter eine der drei Zahlensystemdefinitionen die wir zuvor in einer der Variablen gespeichert haben zuweisen Diese Prozedur entfernt zugleich alle H ckchen aus dem Men und setzt anschlie end f r den jeweils korrekten Men punkt das H ckchen erneut Das Setzen eines H ckchens f r einen Men punkt erfolgt ber das b
134. er im Textfeld eingegebene Text in einem Mel dungsfenster ausgegeben rem Widgets erzeugen newdialog myDialoq DIALOG 1 1 300 80 newdialog myDialog Eingabe INPUT 10 1 273 25 newdialog myDialog Los BUTTON 80 27 140 25 rem Setzen der Werte Eigenschaften letdialog myDialog CAPTION Hello World letdialog myDialog Eingabe TEXT Dies ist ein Text iecrcdralog imya log Tosi m ACAPRETON Under loser rem Dialog anzeigen ketdialoogi myDialogi VISTBLE N Erue reped rem Dialog starten rundialog event 0 rem Ereignis auswerten if event click_myDialog Los rem Textfeld auslesen getdialog text myDialog Eingabe TEXT echo Der Wert im Textfeld lautet text endif until event close_myDialog end Hello World Dies ist ein individuell gestaltetes Dialog Fensterl Script mit individuell programmiertem Dialog Ich werde Sie nun Schritt f r Schritt in diese neue Welt der schier unbegrenzten M glichkeiten einf hren denn dieses neue sehr effektive Feature eigene Dialoge und Fenster zu programmieren macht RapidBATCH nicht nur zu einer starken Script und Automatisierungssprache sondern auch zu einem schnellen und unkomplizierten Werkzeug zur Ent wicklung von echten individuellen Windows Anwendungen aller Art Anmerkung Folgend werde ich des fteren das Wort Widget verwenden Als Widget eine Abk rzung f r Window Gadget zu deutsch
135. er welches das Dialogelement angesprochen wird einen so gennann ten Attribut Bezeichner dessen entsprechender Wert zur ckgeliefert wird Der zur ckgegebene Wert ist also immer abh ngig vom jeweiligen Attribut Die folgende Tabelle beschreibt die verschiedenen Attribute und gibt Auskunft ber den zur ckgegebenen Wert sowie evtl Formatierungen etc CAPTION Der Titel eines Widgets Widgets DIALOG BUTTON LABEL RADIO OPTION GROUP MENU R ckgabewert Der Titel des entsprechenden Widgets CHECKED Status ob das Widget gehakt ist RADIO OPTION MENU EEE R ckgabewer 0 gehakt 1 zrichtgeha Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 123 von 138 3 ENABLED Ermittelt ob ein Dialogelement aktiviert oder deaktiviert ist Deaktivierte Dialogelemente sind zwar sichtbar jedoch ausgegraut und nicht benutzbar Sprachreferenz Widgets DIALOG BUTTON IMAGEBUTTON INPUT EDIT LABEL OPTION RADIO GROUP COMBO STATIC_COMBO LIST LIST_SORTED PWD MENU PROGRESS R ckgabewert 0 aktiviert 1 deaktiviert ausgegraut FOCUS Ermittelt ob ein Dialogelement den Eingabefokus hat oder nicht Widgets DIALOG BUTTON IMAGEBUTTON INPUT EDIT EDIT_LINEWRAP OPTION RADIO COMBO STATIC_COMBO LIST LIST_SORTED LIST_MULTI LIST_MULTISORTED PWD 0 Checked 1 Unchecked Gibt die Schriftartdefinition eines Widgets zur ck
136. erlassen wie Sie die Befehle schreiben m chten Ich bevorzuge die Klein schreibweise wie im obigen Beispiel Leerzeichen k nnen berall im Code und zwischen Parametern eingesetzt wer Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 8 von 138 MR h Benutzerhandbuch den ebenso auch Tabulatoren Das Ende der Zeile also der Zeilenumbruch markiert gleichzeitig das Ende der Anwei sung d h Sie m ssen f r jede neue Anweisung Ihres Scripts eine neue Zeile beginnen Bevor wir jetzt richtig loslegen mit den m chtigen Funktionen und schier unbegrenzten M glichkeiten die Ihnen Rapid BATCH bietet m chte ich vorweg noch auf die Verwendung von Kommentaren hinweisen Kommentare kann man als Notizen im Quelltext ansehen um die Verwendung bestimmter Operationen oder Vorgehensweisen zu Dokumentieren oder um zu beschreiben was eine oder mehrere Anweisungen f r ein Ziel verfolgen Kommentare helfen Ihnen anderen Programmierern oder sogar dem Anwender bestimmte Abl ufe im Script nachzu vollziehen und besser bzw schneller zu verstehen Ich kommentieren daher den Quellcode der Beispielscripts in diesem Programmierhandbuch immer da wo es mir wichtig erscheint Das bedeutet nicht dass jede einzelne Zeile explizit kommentiert wird oder werden muss sondern nur die wichtigen bzw kritischen Programmpunkte Um in RapidBATCH einen Kommentar einzuleiten bedarf es der REM Anweisung was soviel hei t w
137. erpreters einen Debug Modus festlegen M gliche Parameterwerte sind dabei dieselben wie bei der DEBUGMODE Anweisung DEBUGVARS Syntax DEBUGVARS var1 var2 var3 varn DEBUGVARS Modus Beschreibung F gt die in einer Variablenliste angegebenen Variablen zum Debug Dialog hinzu um diese zu beobachten bzw zu bear beiten modifizieren Alle Variablen m ssen durch Kommata voneinander getrennt sein Anstatt einer Variablenliste Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 130 von 138 k5 Sprachreferenz sind auch die zwei Werte AUTO und NONE m glich AUTO f gt jede neu deklarierte Variable automatisch zur Beobach tung dem Debug Dialog hinzu NONE schaltet diese Option wieder aus 5 RapidBATCH Script Debugger Step Modus a 12 b 24 neu Neuer Wert Script C imksfrb5S debugtest rb Zeile 12 on jr Beispiele debugmode step rem Nur a und b berwachen debugvars a b al al Hol Tal 2 tel fall fol rem Automatisch alle neu deklarierten Variablen hinzuf gen debugvars auto neu Neuer Wert echo neu Bemerkungen Diese Anweisung ist nur im Interpreter der RapidBATCH Professional Edition enthalten DEBUGVARS wird vom Compiler ignoriert und ist nicht in compilierten Programmen verf gbar Sie k nnen mit der Umgebungsvariablen RB_DEBUGVARS vor dem Starten des Interpreters bereits zu beobachtende Variablen festlegen
138. erwenden Sie PROC ENDPROC Mehrere Prozeduren und Funktionen k nnen als Bibliothek in eine Script Datei implementiert werden die dann mit Hilfe der INCLUDE Anweisung in andere RapidBATCH Scripts die diese Prozeduren Funktionen verwenden eingebunden wird Eine Funktion kann nicht vor ihrer Definition aufgerufen werden RET kann nicht ausserhalb einer Prozedur oder Funktion verwendet werden GOTO Syntax GOTO label label Beschreibung GOTO springt zu einem dort spezifizierten Label im Script Dies erm glicht usserst komplexe Programme da Anwei sungen wiederholt ausgef hrt oder bersprungen werden k nnen Ein Label ist durch ein vorangestelltes Zeichen im Code gekennzeichnet Seit RapidBATCH 5 0 ist es auch m glich variable Werte an GOTO zu bergeben d h der Name des Labels welches angesprungen werden soll kann eine Variable oder auch ein aus variablen und statischen Werten zusammengesetzter Label Name sein Beispiele include tdralog rot rem Einfaches statisches GOTO echo Willkommen im GOTO Testscript goto weiterl echo Diese Meldung wird niemals ausgegeben weiterl rem Ein dynamisches GOTO btnmenu geschwindigkeit W hlen Sie eine Geschwindigkeit 30 km h 60 km h 120 km h goto geschwindigkeit 30 km h echo Das ist aber sehr langsam goto weiter2 60 km h echo Das ist ganz okay goto weiter2 120 km h echo SEHR SCHNELL Wollen Sie ein Rennen fahren
139. eschriebener Bin Okt Hex Umrechner Bin Okt Hex Umrechner m Modus Dezimalwert 1234 Bin rwert 10011010010 Der Bin Okt Hex Umrechner ist fertig Der gesamte Quellcode rem AAAA ANE ARANA R REA A RR AORAR ARA AE RR A A HK KH TI AH AH KH AH HA KH AK KR rem Bin Okt Hex Umrechner ia rem Umrechnungsprogramm f r Zahlensysteme rem AAHKKKKAKAKKAHKHHAKKHHHHHHHHTKH HH HI HI HH FH HK KH AK AH AH KH AH KH AH AH rem Copyright C 2005 by J M Meyer 2 rem AAKKAKKKKAKAKIKAKKHIIHHIIK HI IH KH I I HK HH I A AH HA I A A AH I AI A KR rem Importieren von Bibliotheks Hilfsfunktionen inelude math rb include dialog rb rem Globale Variablen Basen und Ziffern der Zahlensysteme dec kin okt hex aktuelle_basis rem Basis 2 Bin rsystem bin 01 rem Basis 8 Oktalsystem okt 01234567 rem Basis 16 Hexadezimalsystem hex 0123456789ABCDEF rem Implementation der Prozedur berechne _Zielwert proc berechne _Zielwert dec dezimal konvert rem Zahlensystemwert aus Dezimalwert errechnen getdialog dezimal umrechner dezimal text Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 60 von 138 Benutzerhandbuch if dezimal rem Wert berechnen mit der decimal_to_base Bibliotheksfunktion decimal_to_base konvert dezimal aktuelle_basis if konvert 1 konvert
140. eset zahlen echo a hat jetzt den Wert a echo Das Array hat jetzt zahlen 0 Eintr ge end Bemerkungen Es ist nicht mehr unbedingt notwendig Variablen zu deklarieren da diese automatisch deklariert werden sobald ihnen ein Wert zugewiesen wird Die Verwendung von DEC ist allerdings in Prozeduren und bei der sauberen Script Programmierung unerl sslich RESET dient rein zur manuellen Speicherverwaltung Bei der Beendigung eines RapidBATCH Scripts gibt RapidBATCH automatisch den reservierten Speicher wieder frei IF ELSEIF ELSE ENDIF Syntax IF Bedingung Anweisung IF Bedingung Anweisungsblock ELSEIF Bedingung Anweisungsblock ELSE Anweisungsblock ENDIF Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 72 von 138 k5 Sprachreferenz Beschreibung Die IF Anweisung erm glicht es Anweisungen bedingt auszuf hren Sie pr ft ob eine Bedingung das Ergebnis TRUE wahr zur ckliefert Ist dies der Fall kann eine nachfolgende Anweisung oder ein so genannter Anweisungsblock ausge f hrt werden Soll nur eine Anweisung ausgef hrt werden so schreibt man diese direkt hinter die Bedingung bei mehre ren Anweisungen schreibt man den Anweisungsblock zwischen dem IF und einem ENDIF oder einem ELSE oder EL SEIF wobei das ENDIF immer den gesamten IF Block abschliesst Wird ein ELSE angegeben lassen sich alternativ Anweisungen ausf hren wenn die
141. evolution ren Neuerung in RapidBATCH 5 den Arrays Bei einem Array engl f r Anordnung Aufstellung Datenfeld handelt es sich um eine Gruppe von Variablen die unter einem gemeinsamen Variablen Namen gespeichert werden Arrays werden ben tigt um einerseits eine gro e Anzahl von Variablen mit geringem Aufwand zu definieren und um andererseits die Voraussetzung zu schaffen direkt auf ein bestimmtes Variablenelement durch Angabe eines Index Wertes zuzugreifen Arrays bieten also die M glichkeit unter dem Namen einer einzigen Variablen schier unendlich viele verschiedene Wer te in sogar mehrfach verschachtelten Dimensionen zu speichern Ein Array kann man sich wie eine Tabelle im Speicher vorstellen in der jede Zeile einen Wert enth lt welcher ber den soeben beschriebenen Index Z hler adressiert werden kann Viele Programmiersprachen bieten sowohl statische Arrays Arrays die in ihrer Gr e nicht variabel sind als auch dy namische Arrays Arrays die zur Laufzeit definiert werden und dynamische Gr en und Dimensionen annehmen k n nen RapidBATCH erm glicht nur den Einsatz von dynamischen Arrays was eine unglaublich hohe Flexbilit t zul sst Der Programmierer braucht sich n mlich in keiner Weise mit der internen Speicherverwaltung des Arrays auseinander zusetzen RapidBATCH erledigt die Dimensionierung und Erweiterung von Arrays intern v llig automatisch Ein einfaches Beispiel f r die Verwendung eines Arrays demonstriert
142. folgendes Script Es speichert 10 unterschiedliche Namen in einem Array welches unter als namen deklariert wird In der REPEAT UNTIL Schleife weiter unten werden die Namen von 1 bis 10 durchlaufen und angezeigt wobei wir eine Z hlervariable i zum Hochz hlen des Indexes verwenden dec namen 10 namen 1 Jan namen 2 Anna namen 3 Stefan namen 4 Matthias namen 5 Sebastian namen 6 Daniel namens Syo UN namen 8 Andreas namen 9 Volker namen 10 Marco index 0 repeat Endes ze echo Name an Position index ist namen index until index 10 end Die folgende Tabelle veranschaulicht die Speicheransicht des Arrays namen im obigen Beispiel Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 15 von 138 k5 Benutzerhandbuch Index Wert Jan Anna Stefan Matthias Sebastian Daniel Uli Andreas Volker 0 o0 S O9 01 A IN 0 Marco Arrays k nnen in RapidBATCH auf verschiedene Arten definiert dimensioniert und re dimensioniert werden Ein einfa ches Array mit vorerst 10 Elementen wie das welches wir in unserem letzten Beispiel verwendet haben kann man z B mit der DEC Anweisung fest vordeklarieren dec meinArray 10 In RapidBATCH ist es v llig frei wie der Index in diesem Fall der feste Wert 10
143. g um ein individuell gestaltetes Messagebox Fenster bereitzustellen Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 89 von 138 k5 Sprachreferenz MSGBOX Syntax MSGBOX Titel Meldungstext Style MSGBOX Ergebnis Titel Meldungstext Style Beschreibung Zeigt ein individuelles Meldungsfenster an MSGBOX kann sowohl als Funktion als auch als Anweisung verwendet werden Die Anweisung Funktion erwartet einen Titel einen Meldungstext sowie einen so genannten Meldungsfenster Style welcher entweder durch eine Zahl was usserst individuelle M glichkeiten zul sst oder durch eine der build in Konstan ten wie z B OK oder YESNOCANCEL repr sentiert wird Welcher der Buttons gedr ckt wurde wird an die Variable errorcode oder im Falle eines Funktionsaufrufes von MSGBOX an die Returnvariable bergeben Die R ckgabewerte der jeweiligen Buttons sowie die Buttontypen sind wie folgt definiert Style Beispiel Button Style jew R ckgabewert an errorcode bzw Return ID variable in Klammern 0 OK 1 1 OK 1 CANCEL 2 MSGBOX Style 1 2 CANCEL 3 RETRY 4 IGNORE 5 MSGBOX Style 2 3 YES 6 NO 7 CANCEL 2 MSGBOX Style 3 4 YES 6 NO 7 5 RETRY 4 CANCEL 2 MSGBOX Style 5 Durch Addition eines der folgenden Icon Styles kann auch ein individuelles Icon angezeigt werden Copyright 2000 2006 by
144. g hat Im ersten Schritt bei der Entwicklung dieses Scripts entwerfen wir einen Prototypen Ein Prototyp ist eine programmierte und lauff hige Version der Eingabemaske jedoch ohne jegliche Funktionalit t Solch ein Prototyp ist auch eine bew hrte Methode die Widgets auf dem Fenster so anzuordnen dass die Oberfl che auch ergonomisch und einheitlich aussieht rem Kr U U rem Prototyp Bin Okt Hex Umrechner rem AAHKFHAFAAHAKAKHAAHHAKAHHAIH IH HI HH AH A TH HH AH A TH HH A KU rem Erzeugen und Aufsetzen des Hauptfensters newdialog umrechner dialog 1 1 270 100 rem Fenstertitel und Style setzen letdialog umrechner caption Bin Okt Hex Umrechner letdialog umrechner style single rem Men baum erzeugen men amp Modus Dezimal gt amp Bin r Dezimal gt amp Oktal Dezimal letdialog umrechner menu men v amp Hexadezimal rem Erzeugung von Eingabefeldern und Labels rem Label und Eingabefeld f r Dezimalzahl newdialog umrechner 1l_dezimal label 5 8 100 22 letdialog umrechner 1l_dezimal caption Dezimalwert newdialog umrechner dezimal inputi 110 4 150 25 letdialog umrechner dezimal font Sans Serif 10 2 rem Label und Eingabefeld f r Zahl des jew Zahlensystems newdialog umrechner 1l_konvert label 5 34 100 22 letdialog umrechner l_konvert caption Bin rwert newdialog umrechner konvert input
145. geklickt endif end Datei und Verzeichnisauswahl Nicht selten kommt es vor dass man Datei oder Verzeichnispfade vom Benutzer abfragen muss Der Einsatz einer INPUTBOX w re hier zwar auch m glich aber unangebracht Zur L sung dieses Problems stellt RapidBATCH drei Dia loge zur Verf gung OPENBOX SAVEBOX und FOLDERBOX Die Dialoge OPENBOX und SAVEBOX erm glichen die Eingabe eines Dateinamens sowie das Browsen durch Ver zeichnisse Des weiteren kann ein Dateifilter gesetzt werden der nur bestimmte Dateitypen zur Anzeige bringt Der einzi ge Unterschied zwischen OPENBOX und SAVEBOX besteht darin dass eine OPENBOX einen Datei ffnen Dialog bereitstellt w rend eine SAVEBOX einen Datei speichern Dialog anzeigt Folgendes Beispiel zeigt die Verwendung der OPENBOX zur Auswahl einer Datei openbox datei Bitte w hlen Sie eine Datei aus Alle Dateien echo Der Pfad zur gew hlten Datei lautet datei end Bitte w hlen Sie eine Datei aus Suchen in G b5be3 N doc G Dete Zuletzt Dib verwendete D samples B install txt s H license ixt Desktop lplink exe K rbb4 exe x m rbc32 exe RI Werbisz exe E rbruna2 rtl Eigene Dateien E rbscript ico Sriched20 dil JE 3 E uninso00 dat j i9uninsoon exe Arbeitsplatz Netzwerkumgeb Dateityp Alle Dateien Abbrechen Dateiname license txt Die OPENBOX Funktion stellt einen Datei ffnen D
146. gesetzt werden kann Folgende Beispiele demonstrieren einmal ein paar Einsatzf lle f r IF Konstruktionen Eine einfache IF Anweisung zu deutsch Wenn w re z B if eingabe hallo echo Das eingegebene Wort wurde erfolgreich auf hallo gepr ft Hier folgt direkt hinter der IF Anweisung und der dazugeh renden Bedingung die auszuf hrende Anweisung M chte man zwei oder mehr Anweisungen hinter einem IF ausf hren gibt man diese in einem so genannten IF Block an if eingabe hallo echo Das eingegebene Wort wurde erfolgreich auf hallo gepr ft Bel SAN iE x gt 32 male endif Der Zeilenumbruch hinter der Bedingung weist den Interpreter bzw Compiler an dass er wenn die Bedingung erfolg reich ist den gesamten Code bis zum n chsten ENDIF oder ELSEIF ELSE ausf hren soll Die HALT Anweisung die hier verwendet wird beendet das Script Wenn man mehrere verschiedene Bedingungen in unterschiedlichen IF Bl cken pr fen m chte verwendet man die ELSEIF Anweisung if eingabe hallo echo Das eingegebene Wort wurde erfolgreich auf hallo gepr ft pel Tas a esl gt S24 meke lseif eingabe tsch ss echo Auf wiedersehen Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 12 von 138 ih Benutzerhandbuch halt endif Wenn keine der Bedingungen eintritt also alle IF ELSEIF Bedingungen unwahr sind so kann man auch einen bestimm ten Anwei
147. gew hlt werden Die bergabe der Eintragsliste erfolgt quivalent zum LIST und LIST_SORTED Widget Zudem k nnen alle Operationen wie Text lesen setzen Cursor setzen oder markierten Text lesen ersetzen genau wie beim INPUT Widget angewandt werden Item 2 v Item 1 Item 3 STATIC_COMBO STATIC_COMBO Widgets sehen genau wie COMBO Widgets aus allerdings l sst sich der gew hlte Wert nicht editieren oder ver ndert Es kann also nur aus einer statischen und vor definierten Menge von Werten gew hlt werden IMAGE Ein IMAGE Widget erm glicht das Anzeigen eines Bildes auf einem Dialogfenster Das Bild wird mit Hilfe des IMAGE Attributes gesetzt und automatisch auf die jeweilige Gr e skaliert Es k nnen derzeit nur extern gespeicherte Bitmap Bilder Dateierweiterung BMP verwendet werden CI PROGRESS PROGRESS Widgets Progressbars werden verwendet den Fortschritt einer Operation visuell als einen prozentualen Anteil darzustellen Der prozentuale Anteil des Fortschrittsbal kens kann auf einen beliebigen Wert gesetzt werden GROUP GROUP GROUP Widgets Groupboxes werden verwendet um andere Widgets visuell zu gruppieren d h eine gewisse Zusammengeh rigkeit einer Widget Gruppe darzustellen Diese Widgets haben nur eine rein visuelle Funktion Der Titel der Groupbox wird mit Hilfe des CAPTION Attributes gesetzt Entwicklung einer Beispielanwendung Um einmal die Implementierung einer kle
148. gew hlte Datei pfad endif until datei endif end Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 33 von 138 5 Benutzerhandbuch Dateinamen ausw hlen Suchen in samples cont_test rb Zuletzt debug_test rb verwendete D T amp 4 dialog_demo rb gt u dir_exists rb E k editor rb Desktop khit _the_button rb roflcopter rb i k script_highlighter rb I k setstyle rb N starfighter bmp starfighter rb E calculator rb Eigene Dateien 39 Arbeitsplatz Dateiname calculator rb editor rb hit_the_button rb W Netzwerkumgeb Dateityp Alle Dateien i u v Abbrechen Mehrfach Auswahl in einem Datei ffnen Dialog Wird OpenBox_MultiSel bzw SaveBox_MultiSel wieder auf den Wert 1 gesetzt ist wieder nur eine Einfach Auswahl mit dem jeweiligen Dialogfenster m glich Bei vielen Anwendungen will man auch auf den Komfort nicht verzichten einfach einen Dateinamen ohne Dateinamens erweiterung in Datei ffnen und Datei speichern Dialog einzugeben Die Dateinamenserweiterung soll dabei automa tisch an den eingegebenen Dateinamen angeh ngt werden Um dies zu erm glichen kann man eine Standard Erweiterung f r Dateinamen in der Variablen OpenBox_DefFileExt bzw SaveBox_DefFileExt auf eine beliebige Datei namenserweiterung OHNE den Punkt setzen rem Standarderweiterung TXT Datei Sav
149. globale Variable test haben k nnen wir auch in einer Prozedur auf sie zugreifen Anders ist es bei Variablen die als Parameter in Prozeduren und Funktionen defi niert oder in den Prozeduren Funktionen deklariert wurden diese sind n mlich alle lokal Man kann auch beim Aufruf einer weiteren Prozedur aus einer Prozedur nicht auf die lokalen Werte der aufrufenden Prozedur zugreifen W re dies m glich w rde ein immenses Chaos ausbrechen was die Programmierung rekursiver Prozeduren siehe n chstes Kapitel sowie die strukturierte prozedurale Programmierung im Allgemeinen v llig unm glich und zwecklos machen w rde Der Unterschied zwischen lokalen und globalen Variablen kann manchmal auch zu sehr viel Verwirrung f hren daher rate ich um Probleme mit globalen Variablen zu vermeiden immer jede lokale Variable die nicht als Parameter bergeben wird in der Prozedur mit Hilfe der DEC Anweisung explizit zu deklarieren Einfachstes Fallbeispiel ist folgen des Script Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 19 von 138 k5 Benutzerhandbuch BZ ol Dro TESE Ei 1 echo a ist hier H endproc echo i ist hier Hi test echo ti irst hier nai end Was hier passiert ist recht einfach Wir wollen i in der Prozedur test lokal verwenden Wir weisen i einfach einen Wert zu und nehmen an dass i automatisch neu deklariert wird Dies wird sie jedoch nicht da i bereits
150. hlug wird an errorcode der Wert 1 ansonsten 0 bergeben Verwenden Sie GETREGVAL und DELREGVAL um Registry Werte zu lesen oder zu l schen Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 110 von 138 k5 Sprachreferenz DELREGVAL Syntax DELREGVAL Hauptschl ssel Unterschl ssel Bezeichner Beschreibung L scht einen Registry Wert DELREGVAL erwartet als Parameter einen Hauptschl ssel einen Unterschl ssel sowie den Bezeichner des Wertes in der Registry der gel scht werden soll Als Hauptschl ssel sind folgende Werte als build in Konstanten definiert CLASSES_ROOT f r HKEY_CLASSES_ROOT CURRENT_CONFIG f r HKEY_CURRENT_CONFIG CURRENT_USER f r HKEY_CURRENT_USER LOCAL_MACHINE f r HKEY_LOCAL_MACHINE USERS f r HKEY_USERS DYN_DATA f r HKEY_DYN_DATA Der Unterschl ssel gibt den Pfad des Unterschl ssels jeweils getrennt durch Backslash an Als Wertbezeichner wird der in der Registry definierte Bezeichner angegeben der gel scht werden soll Beispiele rem Testwert schreiben letregval STRING CURRENT USERI Software jmksf RapidBATCH HelloWorld Hello World by RapidBATCH if errorcode 0 echo Wert wurd rfolgreich geschrieben else echo Fehler beim Schreiben halt endif rem Testwert wieder entfernen delregval CURRENT_USER Software jmksf RapidBATCH HelloWorld if errorcode 1 echo Fehler
151. hreibt man e Da wir nun die ALT Taste gedr ckt halten senden wir direkt ein d hinterher Mit ALT D w hlen wir also via Tastenkombination das Datei Men des Editors Es sei hier auch zu erw hnen das man bevor man eine An wendung mit RapidBATCH fernsteuert sich vorher in der Anwendung das genaue Vorgehen selber anschaut indem man seine Tastenkombinationen dr ckt Beachten Sie bitte da direkt nachdem das d an die Anwen dung geschickt wurde beide Tasten also d und die ALT Taste wieder automatisch losgelassen werden M chte man z B Mehrere Tasten gleichzeitig dr cken z B STRG ALT und ENTF so schreibt man als SEND KEYS Makro control alt del e Um nun dem Speichern Dialog zu laden dr cken wir noch direkt ein s hinterher e Wie Sie an dieser Stelle schon gemerkt haben k nnen normale e Zeichen wie Buchstaben und Zahlen direkt angegeben werden nur reine Sondertasten f r die es kein lesbares Zeichen gibt werden geklammert ge schrieben e Abschnitt C e Hier tippen wir wieder einfach einen Text in diesem Fall den Dateinamen test txt ein und best tigen den Di alog mit der Taste Enter ber den Sondertastenbefehl enter e Abschnitt D e Zum Schluss dr cken wir noch einmal ALT F4 um die Anwendung zu beenden Auch F1 ist hier ein Sonder zeichen und wird als f1 kodiert Es ist brigens v llig Frei ob Sie Gro oder Kleinschreibung bei den Sonder tastennamen angeben ALT oder A
152. i Basisdialogen ist diese Koordinate relativ zur linken oberen Ecke des Bildschirms bei Child Widgets relativ zur linken oberen Ecke des Basisdialogs zu dem das Widget geh rt Widgets DIALOG BUTTON IMAGEBUTTON INPUT EDIT EDIT_LINEWRAP LIST LIST_SORTED LIST_MULTI LIST_MULTISORTED COMBO STATIC_COMBO RADIO OPTION GROUP IMAGE PWD PROGRESS Die Y Position des Widgets in Pixel Mit LETDIALOG lassen sich neben Attributen auch Events also Ereignisse die bei der Ausf hrung von RUNDIALOG auftreten k nnen f r die verschiedenen Dialogelemente ein und ausschalten Die folgende Tabelle beschreibt und erkl rt die verschiedenen Ereignisse und gibt Auskunft ber die unterst tzten Dialogelemente f r jedes Ereignis kein Dialogelement unterst tzt alle m glichen Ereignisse Das jeweilige Ereignis kann durch Setzen auf den Wert 0 eingeschaltet und durch Setzen auf den Wert 1 ausgeschaltet werden Der Default Wert f r die verschiedenen Ereignisse wird hinter den unterst tzten Elementen in Klammern ange geben Ereignis Bezeichner Beschreibung Unterst tzte Widgets EVENT_CLICK Ereignis beim Anklicken eines Widgets DIALOG 1 BUTTON 0 IMAGE BUTTON 0 LABEL 1 OPTION 1 RADIO 1 IMAGE 1 MENU 0 EVENT_DBLCLICK Ereignis beim doppelten Anklicken eines Wid LIST 1 LIST_SORTED 1 gets EVENT_CHANGE Ereignis beim ndern eines
153. ialog zur Verf gung Die OPENBOX Funktion alle Parameter sind hierbei identisch f r die SAVEBOX ben tigt neben der R ckgabevariable einen Dialog Titel oder einen Aufforderungstext und den bereits angesprochenen Dateifilter Dieser Dateifilter kann sehr individuell gestaltet werden und erm glicht den Einsatz der Wildcard Platzhalter und Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 32 von 138 k5 Benutzerhandbuch bergeben wird der Dateifilter als Liste hnlich wie bei LISTBOX oder TRAYMENU nur dass hier nach folgendem Mus ter vorgegangen werden muss Filterbezeichnung Filter Obiges Beispiel legt als einen Filter alle Dateinamen die eine Dateiendung haben an und benennt ihn mit Alle Dateien Wenn wir nun alle Textdateien Dateienung TXT filtern m chten verwenden wir folgenden Filter Textdateien txt Die OPENBOX erm glich dem Benutzer auch die Auswahl eines Filters falls mehrere gegeben sind Man kann also einfach einen weiteren Filter an einen bereits vorhandenen dranh ngen indem man das obige Muster einfach durch ein weiteres Pipe Listentrennzeichen vom vorhergehenden Filter trennt Folgendes beispiel legt drei Filter an EXE Dateien exe COM Dateien com Batch Dateien bat Es lassen sich auch mehrere Filtermasken unter einem einzelnen Filternamen speichern Hierbei trennt man jeden Filter durch ein Semikolon Folgender Filter erm glich die An
154. ibgesch tzt Komprimiert Verzeichnis Versteckt und Systemdatei Neben den numerischen Werten lassen sich optional auch die englischen Bezeichner als Attribut Typ angeben z B ARCHIVED oder READONLY GETFILEATT gibt 0 zur ck wenn das abgefragte Dateiattribut gesetzt ist andernfalls 1 LETFILEATT setzt Dateiattribute wenn diese nicht gesetzt sind M gliche Werte f r die Dateiattribute sind identisch zu denen von GETFILEATT allerdings lassen sich die Attribute COMPRESSED 3 und DIRECTORY 4 nicht setzen Schl gt LETFILEATT fehl so erh lt errorcode den Wert 1 ansonsten 0 Beispiele file UV N readne exe rem Attribute auslesen Fl Fin repeat getfileatt iret File li res res i ret new_line il ee fa gt IS echo File Attributes of Eile new line new line iresi rem Attribute setzen letfileatt file normal end Bemerkungen keine Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 104 von 138 k5 Sprachreferenz GETFILEDATE LETFILEDATE Syntax GETFILEDATE Datum Dateiname LETFILEDATE Dateiname Datum Beschreibung GETFILEDATE liest das Anderungsdatum einer Datei und gibt dieses im Format mmddyyyy zur ck LETFILEDATE setzt das nderungsdatum einer Datei Parameter sind der Dateiname und ein Datum im Format mmddyyyy Beispiele newfile test txt getfiledate d test t
155. ibliothek SYSTEM RB die Prozedur copydir implementiert die ein komplettes Verzeichnis mitsamt Unterverzeichnissen rekursiv kopieren kann procicopyDnr iSource target deeri coki EI ees Eimeleriiag anes souzesj s Net TV if eidlesj n errorcode 1 rer endif mkdir target repeat calevar mA il vr NL Seeccok eoak Lerlasj IN a eo 1 WV getfileatt isDir source tok EDIRECTORY st ee E 0 copyDir source tok target tok else copyfile source tok target tok endif endif ntil tok 17 errorcode 0 endproc Zeiger auf Variablen Bei unseren bisherigen Beispielen mit Prozeduren haben wir schon oft mit Parametern gearbeitet Dabei haben wir bis her nur das Call By Value Verfahren angewandt d h einen einzelnen Wert an eine lokale Variable der Prozedur ber geben Bei diesem Verfahren kann aber nur intern innerhalb der aufgerufenen Prozedur mit diesen Werten gearbeitet werden d h sie sind nicht ver nderbar ausserdem lassen sich somit keine Arrays an Prozeduren bergeben Zu die sem Zwecke gibt es das Call by Reference Verfahren bei dem man einer Prozedur als Parameter nicht den Inhalt der Variablen bergibt sondern eine lokale Pseudo Variable die dann auf die eigentliche Variable zeigt Diese Pseudo Variablen hei en Pointer weil sie auf einen Speicherbereich eben die Ziel Variable zeigen ber solch einen Pointer kann man
156. ichen umwandeln und an Ausgabestring h ngen i 0 reped ene all gettok zeichen data std_sep i if zeichen getchr zeichen zeichen klartext zeichen endif until zeichen rem Den Klartext ausgeben echo Klartext klartext end Wir lesen hier den Text Bin r Schreibvorgang aus der oben erstellten und geschriebenen Datei Wir setzen dabei den Start Offset auf 125 dort wo der Text anf ngt und lesen von dort aus 20 Zeichen Ergebnis ist der entsprechende String Wenn Sie mit GETFILE ber das Dateiende hinaus lesen wollen wird entweder ein Leerstring oder aber alle Bytes bis zum Dateiede zur ckgegeben Wozu das alles Sicherlich haben Sie sich gefragt warum wir hier einfache Textdateien bin r schreiben Das ist nat rlich nicht der eigent liche Sinn und Zweck von Bin rdateien Sie haben aber mit PUTFILE und GETFILE die volle Kontrolle ber eine Datei Bei READFILE und WRITEFILE werden reine text basierende Dateien verwaltet doch mit PUTFILE und GETFILE ha ben Sie einfach mehr M glichkeiten eine Datei zu verarbeiten Sie stellen sozusagen die professionelle Alternative zu WRITEFILE und READFILE dar welche Sie aber mit h chster Warscheinlichkeit vermehrt bei der Programmierung von Scripts in RapidBATCH einsetzen werden da WRITEFILE und READFILE f r die meisten Anwendungsf lle mehr als ausreichend und nat rlich viel einfacher zu handhaben sind Copyright 2000 2006 by J M K S F
157. ichnis MUSS allerdings leer sein darf also we der Dateien noch weitere Unterverzeichnisse enthalten rmdir C wale zahnwale schwertwal Anders als bei MKDIR wird hier aber immer nur ein einziges Verzeichnis n mlich der entsprechend angegebene Pfad gel scht Dateioperationen im Filesystem Um Dateien zu verwalten bietet Ihnen RapidBATCH die Anweisungen und Funktionen NEWFILE DELFILE COPYFILE RENAMEFILE FILEEXISTS und FINDFILES Die Anweisung NEWFILE erzeugt eine leere Datei DELFILE l scht eine existierende Datei Die Syntax ist bei beiden Anweisungen quivalent rem Datei erzeugen newfile leer txt if errorcode 0 echo Datei leer txt wurde erzeugt rem Datei l schen delfile leer txt if errorcode 0 echo Datei leer txt wurde wieder gel scht Auch hier k nnen wir brigens bei jeder Datei spezifischen Anweisung wieder ber die Variable errorcode pr fen ob die jeweilige Dateioperation erfolgreich war errorcode 0 oder ob nicht errorcode 1 Um eine Datei zu kopieren bietet RapidBATCH die COPYFILE Anweisung Sie kopiert den Inhalt im Verh ltnis 1 1 aus einer Quelldatei in eine Zieldatei Die Anweisung RENAMEFILE erm glicht das Umbenennen bzw Verschieben einer Datei Beispiel rem C jmksf rb5 readme txt in C test txt kopieren copy len er Amk Nr por eadmer Eae VENEESEEN rem EATERS T TXIT ORENEN s open C test txt rem C TEST TXT wieder l schen
158. ie das englische Wort remark f r Bemerkung Diese Anweisung leitet einen einzeiligen Kommentar ein Beispiel w re hier bezogen auf unser erstes Beispielscript rem Ein einfaches Programm mit Ausgabe eines Textes in einem Meldungsfenster echo Hallo ich bin ein RapidBATCH Script rem Programmende end Kommentare k nnen nicht direkt hinter Programmieranweisungen folgen sondern werden intern vom Interrpeter bzw Compiler als eigenst ndige Anweisung angesehen Daher muss jeder Kommentar immer in eine separate Zeile ge schrieben werden Im n chsten Kapitel steigen wir nun richtig in die Materie der Programmierung von RapidBATCH Scripts ein Wenn Sie mit der Verwendung des RapidBATCH Builders noch nicht so vertraut sind testen Sie die verschiedenen Funktionalit ten ruhig einmal aus Variablen Nachdem Sie nun die erste H rde das erste eigene Script berwunden haben geht s erstmal richtig los Wir werden nun ein Script entwickeln das mit variablen also nicht konstanten Werten arbeitet Diese so genannten Variablen spielen n mlich in der Programmierung von Computern eine sehr wichtige Rolle da sie den Programmablauf beeinflussen und steuern Der Ablauf des Programms kann also von diesen variablen Werten gesteuert und ver ndert werden Variablen sind also Speicherbereiche denen ein Wert zugewiesen werden kann Das nun folgende Script soll einmal den Einsatz von Variablen demonstrieren Dazu erstellen Sie im RapidBATCH B
159. ieren Dieser Teil ist interessant f r diejenigen die selber DLLs programmieren m chten DLLs k nnen mit jeder Programmier sprache erstellt werden die das Erstellen von DLLs mit C Aufrufkonventionen erlaubt auf jeden Fall also mit einem C Compiler Es folgt eine kurze Einf hrung in das Programmieren von DLLs und die RapidBATCH Schnittstelle DLLs Dynamic Link Librarys zur Laufzeit einzubindende Bibliotheken stellen Funktionen bereit die von Anwendungen aufgerufen werden k nnen DLLs werden entweder sofort beim Start eines Programms geladen oder erst bei Bedarf RapidBATCH verwendet die zweite Methode d h die DLLs werden erst durch den EXT Befehl geladen Beim ersten Aufruf einer Funktion aus einer DLL wird die DLL in den Speicher geladen und initialisiert Die DLL bleibt dann bis zum Programmende im Speicher und wird dann zusammen mit der Anwendung automatisch entladen Jede DLL muss eine Funktion LibMain enthalten Diese Funktion wird automatisch beim Laden und Entladen der DLL aufgerufen Die DLL kann in dieser Routine z B bei Laden Variablen initialisieren oder beim Beenden benutzte Objekte wieder freigeben oder tempor re Dateien l schen Die Funktion LibMain muss beim Laden der DLL den Wert TRUE zur ckgeben sonst wird der Ladevorgang abgebrochen und die DLL wird sofort wieder entladen RapidBATCH w rde dann errorcode 1 liefern so als wenn die DLL nicht gefunden wurde Beim Entladen wird der R ckgabewert der Funktion Li
160. iger auf Arrays und Variablen an die Funktion als lokale Variablen bergeben und verarbeitet werden Funktionen haben Grunds tzlich einen R ckgabewert d h beim Aufruf einer benutzerdefinierten Funktion muss eine R ckgabevariable Return Variable quivalent Funktionsaufrufen von RapidBATCH build in Funktionen angegeben werden Um einen Wert zur ckzugeben verwenden Sie die RET Anweisung die als Parameter den zur ckzugebenden Wert erwartet Wird in einer Funktion eine RET Anweisung ohne Parameter verwendet so gibt die Funktion einen Leerstring an die R ckgabevariable zur ck Eine Funktion kann wiederum andere Funktionen Prozeduren oder sich selbst rekursiv aufrufen Funktions Prozedurdeklarationen in Funktionen sind nicht erlaubt Beispiele pem De nimm elonnderErnmkeeoneleuadrzan func quadrat wert ret wert wert endfunc rem Aufruf der Funktion quadrat quadrat ergebnis 4 echo Ergebnis ergebnis rem Definition der Funktion fakultaet func fakultaet x dec res ir 20 res 1 else rem Rekursiver Aufruf von fakultaet takulitaeset Iresi Bar Zr Bee endif ret res endfunc Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 76 von 138 ul Sprachreferenz rem Aufruf der Funktion fakultaet fakultaet ergebnis 4 echo Die Fakult t von 4 ist ergebnis end Bemerkungen Um eine Prozedur zu definieren v
161. inen kompletten Anwendung welche mit einem benutzerdefinierten Dialogfens ter arbeitet zu demonstieren werden wir in diesem Kapitel einen Zahlensysteme Rechner programmieren Dieser Bin Okt Hex Umrechner wie ich ihn nenne soll Dezimalzahlen in Bin rzahlen Oktalzahlen und Hexadezimalzahlen und umgekehrt umrechnen k nnen Zur Berechnung der Zahlensysteme verwenden wir die Funktionen base_to_decimal und decimal_to_base aus der Bibliothek MATH RB da der Hauptschwerpunkt dieses Beispiels nicht beim Umrechnen der Zahlen sondern beim Um gang mit den Dialogwidgets liegt Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 56 von 138 7 Benutzerhandbuch Vorab aber trotzdem ein wenig Theorie am Beispiel der Umrechnung vom Dezimalzahlensystem in das Bin rzahlensys tem Das Dezimalzahlensystem verwenden wir in unserem t glichen Gebrauch von Zahlen Dezimalzahlen bestehen daher aus Ziffernfolgen von 0 9 sind also zur Basis 10 gehalten Das Bin rzahlensystem kennt nur zwei Ziffern 0 und 1 und ist zur Basis 2 gehalten daher auch manchmal der Begriff Dualzahlensystem Auf niederigster Ebene besteht jedes Programm jedes Zeichen und jeder Wert der mit oder von einem Computer verarbeitet wird aus Millionen solcher Folgen wie z B 10011010010 was in dezimaler Schreibweise dem Wert 1234 entspricht Errechnen l sst sich dieser bin re Wert recht simpel indem man den Ausgangswert 12
162. inen bzw mehrere Eingabewerte verarbeiten und einen daraus resultierenden Wert zur ckgeben Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 11 von 138 k5 Benutzerhandbuch Bedingungen und Schleifen Nachdem Sie nun die usserst komplexen M glichkeiten der variablen Programmierung kennen gelernt haben kommen wir zu einem weiteren wichtigen Teil der Ereignis orientierten Programmierung den Bedingungen Bisher haben wir n mlich nur Scripts geschrieben die kontinuierlich von vorne nach hinten durchlaufen Solche Pro gramme sind mehr oder minder uninteressant f r die Entwicklung von Software Programmen Doch in RapidBATCH gibt es verschiedene M glichkeiten variable Werte zu pr fen und den Programmablauf somit bedingt zu gestalten Beginnen wir mit einem einfachen Script das ein Passwort solange abfragt bis der Benutzer das korrekte Wort eingibt Zu diesem Zweck verwenden wir die Schleifenanweisungen REPEAT und UNTIL zur Konstruktion einer Schleife Eine Schleife ist ein Block von Anweisungen der solange wiederholt wird bis eine gegebene Bedingung erfolgreich gepr ft wird Ist dies der Fall wird die Schleife verlassen und das Script fortgef hrt Der Code f r eine Passwort Abfrage rem Schleife solange wiederholen bis Passwort hallo eingetippt wurde repeat pwdbox password Login Bitte geben Sie Ihr Kennwort ein until password hallo echo Das Kennwort wa
163. infachen Doppelklick auf die Scriptdatei wie bei einem EXE oder Batchprogramm gestartet werden Auch ein Projektordner oder etwaige Projekt Dateien wie sie von gro en Entwicklungsumgebungen bekannt sind entfallen g nzlich Die Scripts werden dabei zur Ausf hrung von dem RapidBATCH Interpreter interpretiert d h der Script Code wird im Klartext eingelesen und ausgef hrt Wer in RapidBATCH programmierte Tools weitergeben m chte kann allerdings auch mit Hilfe des RapidBATCH Compilers eine eigenst ndig ausf hrbare EXE Datei erzeugen die ohne einen RapidBATCH Interpreter auf jedem Windows System ausf hrbar ist Auch bei der Erstellung der Scripts macht es Ihnen RapidBATCH so einfach und angenehm wie nur m glich Der Script Editor RapidBATCH Builder erm glicht die komfortable Erstellung der Scripts die direkt aus dem Editor heraus gestartet und getestet werden k nnen Mit dem integrierten Script Debugger des RapidBATCH Interpreters k nnen Sie Ihre Scripts schrittweise Anweisung f r Anweisung ausf hren und somit deren Ablauf verfolgen Variableninhalte k nnen zur Laufzeit ver ndert werden Somit haben Sie ein n tzliches Werkzeug zur Suche von logischen Programmierfehlern zur Hand Dieses Handbuch wird Sie nun Schritt f r Schritt in die Programmierung von Scripts in RapidBATCH 5 einf hren Da RapidBATCH inzwischen zu einer stattlichen und m chtigen Programmiersprache angewachsen ist behandelt dieses Handbuch aber nur die wichtigst
164. ion einen Leerstring zur ck PWDBOX ist eine Abwandlung von INPUTBOX zur maskierten Eingabe von Werten z B Passw rtern PWDBOX Password Box Eingabe eines Wertes Bitte geben Sie einen Wert ein Halo x Beispiele rem Einfache Abfrage mittels INPUTBOX Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 91 von 138 k5 Sprachreferenz inputbox name Dein Name Wie hei t du Anonymous echo Hallo name rem Passwortabfrage mittels PWDBOX pwdbox passwort Passwort Bitte geben Sie Ihr Passwort ein 1 if passwort echo Fehler kein Passwort eingegeben else echo Dankesch n Ihr Passwort lautet passwort endif Bemerkungen Die Beschriftung der Buttons OK und CANCEL kann ber die Variablen InputBox_Ok und InputBox_Cancel gesetzt werden Dies trifft dann auch auf die PWDBOX zu da diese den selben Dialog allerdings mit einem anderen Eingabe feld verwendet Wird die Beschriftung der Buttons auf einen Leerstring gesetzt wird der Button aus dem Dialog ausgeblendet Die Position des Dialogs kann mit Hilfe der Variablen InputBox_X und InputBox_Y ver ndert werden Hat InputBox_X und oder InputBox_Y den Wert 0 wird der Dialog automatisch jeweils horizontal oder vertikal zentriert dies ist die Stan dard Einstellung Die Angabe bei Positionierungswerten erfolgt jeweils in Pixeln Die Gr e von INPUTBOX PWDBOX ist
165. ird das Farbpixel der linken oberen Ecke des Bitmaps als Transparenzfarbe verwendet und damit transparent auf dem Widget dargestellt Es k nnen nur Bilder mit einer maximalen Farbtie fe von 8 BPP transparent dargestellt werden Windows Einschr nkung IMAGEBUTTON IMAGE a Relativer oder absoluter Pfad zu einer Bitmap Datei ITEMS Liste an Werten in Dialog Listenelementen Widgets LIST LIST_SORTED LIST_MULTI LIST_MULTISORTED COMBO STATIC_COMBO Parameterwerte Eine Liste an Elementen in der jedes Element durch das Standard Separationszeichen stan dardm ig Pipe separiert ist Beispiel Item 1 ltem 2 ltem 3 Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 118 von 138 MM 1 Sprachreferenz Erzeugt ein Men auf einem Dialogfenster Dieses Men wird als Beschreibung ber einen so genannten Menu Descriptor bergeben In diesem Descriptor beginnt jeder neue Men eintrag auf einer Ebene mit einem Label z B Men 1 Dann folgt entweder ein Doppelpunkt der ein neues Untermen einleitet Folgt ein Pipe Zeichen bzw das in std_sep definierte Zeichen wird ein Men in der selben Ebene neu angelegt Ein Untermen muss mit einem Semikolon abgeschlossen werden F r jeden anklickbaren Men punkt also jeder Men punkt ohne Untermen wird als Dialog Element ein Label in der Form Fenstername Menu _Men eintrag erzeugt ber dieses Dialogelement k nnen da
166. irm zentrieren amp anzeigen centerdialog umrechner letdialog umrechner visible true letdialog umrechner dezimal focus true rem Ereignisbehandlungsroutine starten repeat rundialog l ereignis 0 if ereignis change_umrechner dezimal berechne_Zielwert elseif ereignis change_umrechner konvert berechne _Dezimalwert elseif ereignis click_umrechner Menu_Dezimal gt amp Bin r setze_Zahlensystem bin elseif ereignis click_umrechner Menu_Dezimal gt amp Oktal setze_Zahlensystem okt elseif ereignis click_umrechner Menu_Dezimal gt amp Hexadezimal setze Zahlensystem hex endif until ereignis close_umrechner end Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 62 von 138 MR h Benutzerhandbuch Die DLL Schnittstelle Verwendung externer Funktionen RapidBATCH verf gt jetzt ber eine Schnittstelle zu DLLs und ist damit leicht erweiterbar Um diese Schnittstelle einfach und effizient zu halten werden spezielle Anforderungen an die aufzurufenden DLLs gestellt Es kann daher nicht jede DLL benutzt werden sondern die DLLs m ssen speziell zur Benutzung mit RapidBATCH programmiert sein Es gibt inzwischen einige fertige DLLs f r RapidBATCH die kostenlos benutzt werden k nnen Einige von ihnen finden sich bereits im aktuellen RapidBATCH Softwarepaket andere lassen sich ber das Internet meist koste
167. isekunden die gewartet wird bis ein optiona ler Timeout eintritt 1 Sekunde entspricht 1000 Millisekunden Dies bedeutet dass das Fenster nur f r eine bestimmte Zeit auf Ereignisse wartet Tritt kein Ereignis ein wird der Timeout ausgel st die Funktion gibt dann einen Leerstring zur ck In unserem Fall aber ist der Millisekunden Wert 0 d h RUNDIALOG hat keinen Timeout und wartet solange bis irgendetwas mit oder auf dem Dialog passiert Im darauffolgenden IF Block berpr fen wir nun diesen von RUNDIALOG zur ckgegebenen Event String Wenn also click_myDialog Los eintrat lesen wir mit der GETDIALOG Funktion den Text des Textfeldes aus und geben ihn mit Hilfe der ECHO Anweisung aus getdialog text myDialog Eingabe TEXT echo Der Wert im Textfeld lautet text GETDIALOG ist sozusagen die umgekehrte Version von LETDIALOG Hier lesen wir eine bestimmte Eigenschaft des ebenfalls bei der Funktion spezifizierten Dialoglabels aus in diesem Fall die Eigenschaft TEXT Mit der abschlie enden UNTIL Anweisung wird gew hrleistet dass RUNDIALOG solange wieder neu aufgerufen wird bis der Benutzer den Schlie en Button des Basisfensters klickt Ist dies der Fall gibt RUNDIALOG den Ereignis String close_myDialog zur ck auf den wir entsprechend abpr fen repeat rem Dialog starten rundialog event 0 rem Ereignis auswerten if event click_myDialog Los rem Textfeld auslesen getdialog text myDialog Eing
168. k Suchstring Ersetzstring Beschreibung Ersetzt jedes Aufkommen des gegebenen Suchstrings durch den Ersetzstring im gegebenen Stringausdruck R ckga bewert ist der Stringausdruck mit den ersetzten Werten Beispiele elslehlie VEN measures findfiles files 14 exe Tin replacevar files files new_line echo Inhalt von current new_line new_line files end Bemerkungen Hat die Variable case_sensitivity den Wert 1 so ber cksichtigt REPLACEVAR auch Stringmuster die sich von der Gro Kleinschreibung her von der Schreibweise des gegebenen Suchstrings unterscheiden D h wenn der Suchstring z B in Kleinschreibweise vorliegt und case_sensitivity den Wert 1 false hat so wird auch ein in Gro buchstaben geschriebener quivalenter Substring als solcher erkannt und ersetzt Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 87 von 138 k5 Sprachreferenz RANDVAR Syntax RANDVAR Zufallszahl Maximalwert Beschreibung Erzeugt eine Pseudo Zufallszahl die zwischen 0 und dem bergebenen Maximalwert 1 liegt Wenn der Funktion bei spielsweise 40 bergeben wird ist der m gliche Zufallswert zwischen 0 und 40 Beispiele rem Erzeuge Zufallszahl randvar random 255 echo zZurfallszahl u random end Bemerkungen Bei der Implementation von RANDVAR wurde darauf geachtet dass sich Zahlen nicht wiederholen Es kann
169. le ignoriert werden soll Beispiele rem Ausgabe des Textes Hello World echo Teikloulermilch end Bemerkungen Im mitgelieferten Scripteditor RapidBATCH Builder k nnen gr ere Codebl cke schnell und einfach mit der Tasten kombination Strg R aus und einkommentiert werden WAIT Syntax WAIT Millisekunden Beschreibung Unterbricht die Scriptausf hrung f r die angegebene Zeit an Millisekunden 1000 Millisekunden entsprechen einer Se kunde Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 80 von 138 k5 Sprachreferenz Beispiele shell C windows calc exe show rem Zwei Sekunden warten wait 2000 echo Viel Spass mit dem Calculator end Bemerkungen keine EXT Syntax EXT R ckgabewert DLL Datei Funktionsname Parameter1 Parametern Beschreibung Ruft eine externe Funktion aus einer DLL Bibliotheksdatei auf Mit EXT k nnen daher selbst entwickelte und spezielle Funktionalit ten in RapidBATCH verwendet und genutzt werden Diese Funktionen werden in Programmiersprachen wie C C Pascal oder Delphi realisiert ber EXT aufgerufene Funktionen m ssen dem EXT Schnittstellenformat entsprechen ansonsten sind sie nicht korrekt aufrufbar Das Format f r eine Funktion hier in der Programmiersprache C realisiert ist wie Folgt definiert int __declspec dllexport _cdecl Funktionsname char output char input int input_count
170. len true und false einsetzen InfoBox_Enabled InfoBox_Height InfoBox_Width InfoBox_X InfoBox_Y Beschreibung ber InfoBox_Enabled l sst sich der Anzeigemodus des INFOBOX Dialogs setzen ob dieser eingeblendet Wert 0 oder show oder ausgeblendet Wert 1 oder hide werden soll Mit den Variablen InfoBox_Width und InfoBox_Height lassen sich die Breite und H he des Dialogs in Pixel bestimmen ber InfoBox_X und InfoBox_Y lassen sich die X und Y Koordinaten in Pixel bestimmen an denen die INFOBOX angezeigt werden soll Standardwert von beiden Variablen ist 0 in diesem Fall wird der Dialog zentriert dargestellt Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 134 von 138 k5 Sprachreferenz InputBox_Ok InputBox_Cancel InputBox_X InputBox_Y Beschreibung ber die Variablen InputBox_Ok und InputBox_Cancel l sst sich die Beschriftung des OK und CANCEL Buttons im INPUTBOX Dialog ndern ber die Variablen InputBox_X und InputBox_Y lassen sich die X und Y Koordinaten in Pixel bestimmen an denen die INPUTBOX angezeigt werden soll Standardwert von beiden Variablen ist 0 in diesem Fall wird der Dialog zentriert dargestellt ListBox_Ok ListBox_Height ListBox_Width ListBox_MultiSel ListBox_X ListBox_Y Beschreibung ber die Variablen ListBox_Ok l sst sich die Beschriftung des OK Buttons im LISTBOX Dialog ndern
171. lenumbruch carriage return und line feed an den zu schreiben den String an Dies kann ber die Variable eol end of line dynamisch angepasst werden so dass beliebige Zeichen als Zeilenende z B f r Unix oder Mac Dateien oder auch gar kein Zeichen angeh ngt werden Verwenden Sie die PUTFILE Anweisung um Daten auf Byte Ebene in eine Datei z B Bin rdatei zu schreiben GETFILE Syntax GETFILE Liste von Zeichencodes Dateiname Start Position Byte Anzahl Beschreibung Liest Daten auf Byte Ebene aus einer Datei Neben dem Dateinamen ben tigt diese Funktion ein Anfangsbyte welches als Start Position bergeben wird und eine Anzahl an Bytes wieviele Zeichen von Start Position aus gelesen werden sollen Ein ASCIl Zeichen entspricht in einer Datei einem Byte und kann maximal einen Wert von 255 annehmen dies ent spricht einem Bin rwert von 1111 1111 also 8 Bit 1 Byte R ckgabewert ist eine Liste an ASCIl Zeichencodes die jeweils durch das RapidBATCH Listentrennzeichen voneinan der getrennt sind im Normalfall das Pipe Zeichen Beispiele rem Beispielscript zur Demonstration von Datei Lese und Schreiboperationen auf Byteebene newfile test txt rem schreiben von Hello World Liste von ASCII Zeichencodes puerile treste ereu i T7 OSS eS TTO STOO rem Lesen des Wortes World als Liste an ASCII Zeichencodes getEle wore Eest EXE sn echo Gelesene Zeichencodes wort rem Konvertierung und Z
172. line wird von der WRITEFILE Anweisung als Zeilenumbruchszeichen verwendet Da WRITEFILE ja automatisch einen Zeilenumbruch hinter jede in eine Textdatei geschriebene Zeile h ngt l sst sich dieser ber diese Variable definieren oder je nach Anwendungsfall gar komplett entfernen Wird eol beispielsweise auf den Wert der Variablen new_line gesetz werden Textdateien in einem f r Unix Programm lesbarem Format fortgeschrie ben Standardwert f r eol ist ein Windows Zeilenumbruch der als carriage return line feed Wagenr cklauf Zeilenvor schub definiert ist Es kann jeder beliebige String als Zeilenumbruch definiert werden der von WRITEFILE hinter jeden geschriebenen Wert angeh ngt wird errorcode Beschreibung Die Variable errorcode ist eine von vielen Anweisungen und Funktionen benutzte Statusvariable die Auskunft dar ber gibt ob eine Aktion erfolgreich war oder nicht oder welchen Status eine Aktion angenommen hat z B welcher Button in einer MSGBOX Meldung oder CONFIRM Meldung gedr ckt wurde In der Befehlsreferenz finden Sie im Bereich Bemerkungen jeweils Auskunft welche Fehlerwerte errorcode von der jeweiligen Anweisung Funktion zugewiesen werden k nnen true false Beschreibung true enth lt den Wert 0 false enth lt den Wert 1 Anstatt diese von vielen RapidBATCH Funktionen Variablen und Anweisungen verwendeten Werte 0 true 1 false zu verwenden kann und sollte man die Variab
173. ll rights reserved Seite 117 von 138 MM 7 Sprachreferenz Setzt eine Schriftart f r ein Widget Neben den Schriftart Namen wird die Gr e in Punkt sowie ein Style Wert bergeben Dieser Style Wert erm glicht die Darstellung der Schrift in Fett 2 Kursiv 4 oder Unterstrichen 8 Rechnet man die jeweiligen Werte 2 4 8 zusammen kann man mehrere Styles gleichzeitig setzen z B Wert 6 f r Fett und Kursiv Widgets BUTTON INPUT EDIT_LINEWRAP LABEL OPTION GROUP COMBO STATIC_COMBO LIST_SORTED LIST_MULTI LIST_MULTISORTED Schriftart Typ Gr e und Style in der Form Schriftart Gr e Style z B Courier New 10 2 HEIGHT H he eines Widgets Widgets DIALOG BUTTON IMAGEBUTTON INPUT EDIT EDIT_LINEWRAP LIST LIST_SORTED LIST_MULTI LIST_MULTISORTED COMBO STATIC_COMBO RADIO OPTION GROUP IMAGE PWD PROGRESS Die Widget H he in Pixel ICON Setzt ein alternatives Icon f r einen Dialog Wird ICON auf leer gesetzt default wird das globa le Anwendungsicon welches in der Variablen app_icon definiert ist verwendet Widgets DIALOG EB Relativer oder absoluter Pfad zu einer externen ICO Datei IMAGE Setzt eine externe Bitmapdatei Dateiendung BMP f r ein Bild anzeigendes Widget Widgets IMAGEBUTTON Relativer oder absoluter Pfad zu einer Bitmap Datei IMAGE_TRANSP Setzt eine externe Bitmapdatei Dateiendung BMP f r ein Bild anzeigendes Widget Hierbei ARENT w
174. lle Systemzeit im Format HH MM SS windir Beschreibung Enth lt den Pfad des Windows Systemverzeichnisses winvers Beschreibung Gibt Auskunft ber die verwendete Windows Version M gliche Werte sind 95 95A 95B 95C 98 98SE ME NT4 2000 XP 2003 oder unknown wobei letztere nur bei neueren Windows Versionen als 2003 eintritt Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 137 von 138 15 Sprachreferenz Index Sprachreferenz und vordefinierte Variablen active_window 132 app_icon 132 case_sensitivity 132 clipboard 132 command 132 Confirm_Title 133 Erler 133 e rrent 2u 4 22 133 Cur ser a 202 22 133 day ee 133 Echo_Title 133 EditBox_Cancel 133 EditBox_Height 133 EditBox_Ok 133 EditBox_Width 133 EditBox_X 133 EditBox_Y 133 eolle2 22 re 134 errorcode 134 false inoan 134 InfoBox_Enabled 134 InfoBox_Height 134 InfoBox_Width 134 InfoBox_X 134 InfoBox_Y 134 InputBox_Cancel 135 InputBox_Ok 1
175. lltext DemoDLL c und einem Beispielscript DemoDLL rb das diese DLL aufruft Der Quelltext ist kommentiert und enth lt noch einige weitere Informationen zum Thema RapidBATCH und DLLs Noch ein Hinweis zu den Funktionsnamen Viele C Compiler neigen dazu die Funktionsnamen mit einem _ Zeichen zu dekorieren Meistens kann das ber entsprechende Compileroptionen abgeschaltet werden Wenn das nicht m glich ist dann muss im RapidBATCH Script der Name der Funktion mit einem vorangestellten _ Zeichen verwendet werden Ein Beispielprojekt Hier ein kleines Beispielprojekt mit dem kompletten C Quellcode einer einfachen DLL Datei und dem entsprechendem RapidBATCH Script welches diese DLL verwendet Beide Dateien finden sich auch im Verzeichnis DLL DemoDLL des RapidBATCH Installationsverzeichnisses An dieser Stelle ein gro es Lob an Klaus Fischer radix42 f r das schreiben dieser Einf hrung und f r die Entwicklung der zahlreichen Beispiel DLLs lt windows h gt wird f r alle Windows Funktionen ben tigt include lt windows h gt lt stdio h gt wird f r die Funktion sprintf ben tigt include lt string h gt include lt stdio h gt Dies ist die Start Stop Routin iner jeden DLL Diese Routine wird beim Laden und Entladen der DLL aufgerufen F r die Funktion gilt die WINAPI Aufrufkonvention BOOL WINAPI __declspec dllexport LibMain HINSTANCE hDLLInst DWORD fdwReason LPVOID lpvReserved
176. log umrechner 1l_konvert caption Hexadezimalwert letdialog umrechner Menu_Dezimal gt amp Hexadezimal checked true endif td ed rem Aktuelle Basis auf bergebenes Zahlensystem setzen aktuelle_basis zahlensystem berechne_Zielwert endproc Jetzt ist die Anwendung schon fast fertig Was jetzt noch fehlt ist eine Ereignisbehandlungsroutine Dazu erweitern bzw modifizieren wir den Bereich in dem wir die Eingabefelder erzeugen insoweit dass wir das CHANGE Ereignis welches Auftritt wenn sich irgendetwas an dem Inhalt des Eingabefeldes ver ndert hat einschalten Bei der Erstellung eines Widgets vom Typ INPUT ist dieses Ereignis standardm ig ausgeschaltet Einschalten k nnen wir es indem wir bei LETDIALOG als Attributbezeichner den Wert EVENT_CHANGE auf true 0 setzen Ein weiteres Setzen dieses Attributes auf false oder 1 bewirkt die erneute Ausschaltung des Ereignisses f r das jeweilige Widget Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 59 von 138 7 Benutzerhandbuch Nach der Erzeugung der Widgets sowie Einschaltung der CHANGE Ereignisse rufen wir hier auch bereits einmal unsere Prozedur setze_Zahlensystem mit der Variablen bin als Parameter auf um direkt als Default Umrechnungssystem das Bin rzahlensystem zu bestimmen rem Erzeugung von Eingabefeldern und Labels rem Label und Eingabefeld f r De
177. lt Das gedr ckthalten von Tas ten ist bei Sondertasten z B STRG oder ALT in Verbindung mit anderen Tasten m glich Um mehrere Tasten gleichzeitig zu dr cken muss das Zirkumflexzeichen vor jedes der gew nschten Zeichen geschrieben werden Das dr cken wird automatisch aufgehoben wenn ein nicht gedr cktes Zeichen folgt oder der Tastaturkomman do String endet Beispiel alt f sendet ein ALT F alt strg del dr ckt ALT STRG ENTF gleichzeitig Aalt f1 sendet ein ALT F1 a w rde ein gedr ckthalten der Taste a hervorrufen Beachten Sie bitte da alle gedr ckten Tasten nach der Abarbeitung der Anweisung SENDKEYS wieder automatisch losgelassen werden e M chte man ein Zeichen der Makrosprache wie z B eine Klammer auf oder Klammer zu senden stellt man ihr ein Tilde Zeichen voran So z B f r ein Mit wird ein Zirkumflexzeichen selber gesendet Um ein einzelnes Tilde Zeichen zu senden muss ein angegeben werden Als Sondertasten k nnen folgende Tasten angegeben werden tab Tabulator Taste clear Entfernen Taste enter oder return Enter Taste shift Umschalt Taste ctrl oder control Strg Taste alt Alt Taste pause Pause Taste capslock Capslock Taste esc Escape Taste space Leertaste pageup Bild hoch Taste pagedown Bild runter Taste end Zeilenende home Zeilenanfang lef
178. lt w re genauso richtig wie alt Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 44 von 138 MR h Benutzerhandbuch Um eine bersicht ber die m glichen Sondertasten und ihrer Benennung zu erhalten lohnt sich ein Blick in die Befehls referenz in der auch nochmal die Syntax der SENDKEYS Makrosprache Stichpunktartig erkl rt wird Neben SENDKEYS bietet RapidBATCH noch eine weitere M glichkeit Programme fernzusteuern Mit der MOUSEE VENT Anweisung lassen sich alle nur erdenklichen Mausereignisse simulieren und damit fernsteuern d h ein Rapid BATCH Script kann die volle Kontrolle ber die Maus des Computers bernehmen und Klicks Doppelklicks oder einfach nur Bewegungen simulieren Dieses Thema m chte ich jedoch nur kurz anreissen da man aufgrund verschiedener Ausfl sungen und Programme kein allgemeines Demo Script welches Mausereignisse vollzieht durchf hren kann Scripts die Mausereignisse simulie ren sollten Sie daher nur f r den Eigengebrauch programmieren oder wenn Sie sich wirklich sicher sind dass Ihre Mausroutine tadellos auch auf jedem System wo Sie Ihr Script einsetzen funktioniert Folgender Aufruf von MOUSEEVENT setzt den Mauszeiger exakt auf die Mitte des Bildschirmes mouseevent move ScreenWidth 2 ScreenHeight 2 Wie aus dem obigen Beispiel ersichtlich erwartet MOUSEEVENT zwei Parameter Zuerst einen Aktionsbezeichner der MOUSEVEN
179. m Pr fen ob ein Optionsfeld gehakt ist getdialog state myDialog Optionl CHECKED if state true echo Die Option ist eingeschaltet else echo Die Operon is niche aktiv endif rem Pr fen ob ein Widget den Eingabefokus hat oder nicht getdialog hat_fokus myDialog Eingabel FOCUS if hat_fokus true echo Das Eingabefeld hat den Fokus else echo Das Eingabefeld hat keinen Fokus Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 128 von 138 u Sprachreferenz B TECH endif rem Pr fen ob ein Widget aktiviert oder deaktiviert ist getdialog ist_aktiviert myDialog Option2 ENABLED if list_aktiviert true echo Das Widget ist aktiv und kann verwendet werden else echo Das Widget ist deaktiviert endif rem Textauswahl in einem Texteingabefeld getdialog seltext myDialog Eingabel SELECTION echo Der gew hlte Text lautet seltext rem Auslesen einer Mehrfachauswahl getdialog eintr ge myDialog Liste2 SELECTION replacevar eintr ge eintr ge std_sep new_line cho Selektierte Eintr ge new_line eintr ge rem Auslesen der Cursorposition sowie der Auswahll nge rem in einem Eingabefeld getdialog selpos myDialog Eingabel SELPOS getto lpesl lselposl lete sebl 1L gettok len selpos std_sep 2 echo Der Cursor
180. m und hhl1loHALLO gefunden rem Alle Dateien im aktuellen Verzeichnis und allen Unterverzeichnissen rem auflisten die eine Dateiendung haben findes Idateiliste Mr Zero rem Alle RB Dateien im aktuellen Verzeichnis auflisten die nur einen rem Buchstaben im Dateinamen haben findfiles dateiliste rb 1 rem Der Filter rb sucht nach allen Dateien die einen einzelnen rem Buchstaben vor dem Punkt haben einzelner Buchstabe es werden rem also nur die Dateien a rb x rb oder 1 rb gelistet wenn rem diese denn existieren Zum Schluss noch ein Beispiel wie Sie mit Hilfe der Funktionen FINDFILES und GETTOK eine Prozedur programmie ren die mehrere Dateien in ein Zielverzeichnis kopiert mit Hilfe von COPYFILE da diese Funktion ja von sich aus keine Wildcards unterst tzt proc copyfiles quelle ziel filter rem Lokale Variablen vereinbaren dec lil datei dateiliste rem Dateiliste holen findfiles dateiliste quelle filter 1 if dateiliste ret rem Ziel Verzeichnis zur Sicherheit erzeugen rem wird nat rlich wenn es schon existiert nicht berschrieben mkdir ziel rem Dateiliste durchlaufen ii to repeat Beet gettok datei dateiliste i rem Wenn datei nicht leer ist Datei von rem Quelle nach Ziel kopieren ae feeiean 1 copyfile quelle datei ziel datei endif until datei endproc rem
181. mbruch tab enth lt einen Tabulator Vorschub erlf enth lt das Carriage Return und Line Feed Zeichen pipe enth lt das Pipe Zeichen quot enth lt ein einfaches Anf hrungszeichen current Beschreibung Enth lt den Pfad des aktuellen Verzeichnisses Wechseln Sie das Verzeichnis mit der CHDIR Anweisung curuser Beschreibung Unter Windows NT 2000 XP und 2003 der Benutzername des aktuell eingeloggten Benutzers Bei Single Benutzersystemen Family Logon unter Win 95 98 und ME ist der Wert unknown day month year Beschreibung Das Systemdatum aufgeteilt in drei Variablen um verschiedene Datumsformate zu erm glichen EditBox_Ok EditBox_Cancel EditBox_Height EditBox_Width EditBox_X EditBox_Y Beschreibung ber die Variablen EditBox_Ok und EditBox_Cancel l sst sich die Beschriftung des OK und CANCEL Buttons im EDITBOX Dialog ndern Mit den Variablen EditBox_Width und EditBox_Height lassen sich die Breite und H he des Dialogs in Pixel bestim men ber EditBox_X und EditBox_Y lassen sich die X und Y Koordinaten in Pixel bestimmen an denen die EDITBOX angezeigt werden soll Standardwert von beiden Variablen ist 0 in diesem Fall wird der Dialog zentriert dargestellt Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 133 von 138 MR 7 Sprachreferenz eol Beschreibung Die Variable eol eol end of
182. n Ereignis Routinen von eigenen Dialogen sehr von Nutzen sein HALT Syntax HALT Beschreibung Beendet das Script sofort und gibt alle verwendeten Speicher und Systemressourcen frei Beispiele Cinela JERA Tose if errorcode 1 echo C Test existiert nicht rem Script beenden halt endif Bemerkungen keine INCLUDE INCLUDE_ONCE Syntax INCLUDE Includedatei INCLUDE_ONCE Includedatei Beschreibung INCLUDE erm glicht die Importierung einer RapidBATCH Scriptdatei in ein RapidBATCH Script Diese inkludierte Datei wird komplett an der Stelle wo das INCLUDE steht ausgef hrt d h es werden entsprechende Funktionen verf gar gemacht und Variablen zum aktuell ausgef hrten Script hinzudeklariert Sinn und Zweck von Include Dateien ist die Aufteilung eines Projektes in mehrere kleine Dateien und die Implementie rung von Prozedur und Funktionsbibliotheken Man kann daher einmal eine Bibliothek schreiben und alle Funktionen und Prozeduren dieser Bibliothek mittels INCLUDE in jedem Script wo die Funktionen gebraucht werden verf gbar machen Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 79 von 138 k5 Sprachreferenz INCLUDE_ONCE hat denselben Zweck wie INCLUDE nur wird hier das zu inkludierende Script wirklich nur ein mal ausgef hrt Kommt der Interpreter Compiler ein weiteres Mal ber solch eine Zeile mit selbem Dateinamen so wird das Script nicht noch ei
183. n Programms entsprechende Variablen die jeweils die Ziffern aller drei Zahlensysteme Bin r 01 Oktal 01234567 und Hexadezi mal 0123456789ABCDEF beinhalten Eine Variable aktuelle_basis verwenden wir sp ter um die jeweils aktuell um zurechnende Basis f r das Umrechnungsprogramm zu setzen rem Globale Variablen Basen und Ziffern der Zahlensysteme dec bin okt hex aktuelle_basis rem Basis 2 Bin rsystem Berroa Non rem Basis 8 Oktalsystem okt 01234567 rem Basis 16 Hexadezimalsystem hex 0123456789ABCDEF Bevor wir nun eine entsprechende Ereignisbehandlung f r das Men sowie die Eingabe und Umrechnung der Werte implementieren programmieren wir zuerst zwei Prozeduren um die Werte jeweils von Dezimal in das entsprechende Konvertierungssystem oder vom Konvertierungssystem in Dezimal umzurechnen Der Einfachheit halber hei en diese Prozeduren berechne_Zielwert und berechne_Dezimalwert Im Falle eines Fehlers z B wenn eine ung ltige Ziffer ge funden wurde geben beide Umrechnungsfunktionen base_to_decimal decimal_to_base den Wert 1 zur ck Hier schreiben wir in das jeweilige Feld den Wert Fehleingabe um den Benutzer zu informieren dass er einen ung ltigen Wert umzurechnen versucht rem Implementation der Prozedur berechne Zielwert proc berechne _Zielwert dec dezimal konvert rem Zahlensystemwert aus Dezimalwert errechnen getdialog dezimal umrechn
184. n Stamm aller Benutzerprofile auf dem Computer HKEY_CURRENT_CONFIG Grundlegende Einstellungen des Betriebssystemes Mit RapidBATCH l sst sich die Registry nun zunutze machen Ob man nun via RapidBATCH bestehende Registry Werte automatisiert ver ndert um z B das Verhalten einer Software zu ndern oder zu bestimmen oder selbst einen eigenen Schl ssel f r sein Script anlegt um dort beispielsweise benutzerdefinierte Einstellungen und Schalter zu speichern ist jedem selbst berlassen Nat rlich kommt es immer ganz auf den Zweck des jeweiligen Scripts an Zum Erstellen und Entfernen von Schl sseln stellt RapidBATCH die Anweisungen NEWREGKEY und DELREGKEY zur Verf gung NEWREGKEY erstellt einen Unterschl ssel DELREGKEY entfernt einen Schl ssel samt Unterschl ssel und Werten aus der Registry Als Parameter erwarten beide Anweisungen zuerst den Bezeichner des Hauptschl ssels wel cher durch die Werte CGLASSES_ROOT CURRENT_CONFIG CURRENT_USER LOCAL_MACHINE und USERS spezifiziert wird sowie den Pfad des neu zu erstellenden Schl ssels Folgendes Script erzeugt einen Schl ssel unter HKEY_CURRENT_USER mit dem Namen Test rem Einen neuen Schl ssel erstellen newregkey CURRENT_USER Test if errorcode 0 echo Erstellen von HKEY_CURRENT_USER Test war erfolgreich else cho Fehler beim Erstellen von HKEY_CURRENT_USER Test endif rem Einen existierenden Schl ssel entfernen delregkey CURRENT_USE
185. n oder zu setzen Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 105 von 138 k5 Sprachreferenz SHORTCUT Syntax SHORTCUT Verkn pfungsdatei Verkn pfungspfad Parameter Arbeitsverzeichnis Icon Anzeigemodus Beschreibung Erstellt eine Verkn pung Die Verkn pung wird unter dem als Verkn pungsdatei angegebenen Pfad gespeichert wobei die Dateiendung LNK automatisch angeh ngt wird Programmpfad gibt den Pfad zu einer Datei auf die die Verkn pung zeigen soll an Para meter definiert optionale Kommandozeilenparameter Arbeitsverzeichnis ein optionales Arbeitsverzeichnis Icon einen optionalen Icon Pfad Der Anzeigemodus kann SHOW MINIMIZED oder MAXIMIZED sein HIDE ist bei Verkn pfun gen als Anzeigemodus Wert nicht m glich Beispiele userdir C Dokumente und Einstellungen curuser Desktop prog C jmksf rb5 rbb4 exe shorccuriiusesdr ae N BopIdENIEENSchort oue a ler oo Ener oval if errorcode true echo Verkn pfung wurde erfolgreich erstellt else echo Fehler beim Erstellen der Verkn pfung endif Bemerkungen errorcode erh lt den Wert 0 wenn kein Fehler auftrat ansonsten 1 DISKFREE DISKSIZE Syntax DISKFREE Speicherplatz Laufwerksbuchstabe DISKSIZE Speicherplatz Laufwerksbuchstabe Beschreibung DISKFREE gibt den freien verf gbaren Speicher eines Datentr gers in Bytes zur ck DISKSIZE gibt die gesamte
186. n wir dieses Ziel mehr als nur erreicht Wir hoffen sehr dass RapidBATCH Ihren Anspr chen gen gt und Sie es bestm glich an und verwenden k nnen Trotzdem ist uns Ihre Meinung wichtig Wenn Sie noch Anregungen oder Kritiken f r kommende RapidBATCH Versionen haben k nnen Sie uns gerne eine e Mail mit Ihren Ideen zukommen lassen Weitere Informationen zu J M K S F Software Technologies sowie unseren Produkten und unserer Kontakt Adresse finden Sie auf der J M K S F Homepage unter http www jmksf de Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 6 von 138 k5 Benutzerhandbuch Die Grundlagen Ein einfaches Script Bereits in der Einleitung haben wir Ihnen ein einfaches zweizeiliges Script vorgestellt welches den einfachen Aufbau eines in RapidBATCH programmierten Programms darstellen sollte echo VHalllo reh pin ein RapiraBATEH seriper end Um dieses Script auszuf hren m ssen wir es erst einmal editieren und als RapidBATCH Scriptdatei mit der Dateien dung RB speichern Dazu sollten Sie den mitgelieferten Scripteditor RapidBATCH Builder benutzen welcher Ihnen das komfortable Editieren von RapidBATCH Scripts gestattet Den Builder k nnen Sie am einfachsten ber das Startmen Start gt Programme gt RapidBATCH Personal Edition RapidBATCH Professional Edition gt RapidBATCH 5 0 starten Nachdem Sie den RapidBATCH Builder gestartet haben geben Sie dort den oben
187. ndowList gt hat geklappt 64 rem Das war s rem DemoDLL dl1l wird jetzt entladen was ebenfalls mit einer MessageBox rem angezeigt wird end Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 69 von 138 ui Rapid BA i TC er i k5 Sprachreferenz Programmablauf und steuerung DEC RESET Syntax DEC variable1 variable2 variable RESET variable1 variable2 variable Beschreibung DEC deklariert eine oder mehrere neue Variablen im Script Wird DEC innerhalb einer Prozedur aufgerufen so werden alle Variablen lokal deklariert Bei einem Aufruf von DEC ausserhalb einer Prozedur sind die Variablen global im gesamten Script verf gbar DEC kann auch zum Vordimensionie ren eines Arrays verwendet werden RESET entleert oder l scht alle Elemente oder eine Dimension mit allen Unter Dimensionen einer oder mehrerer Vari ablen Arrays Wird bei RESET ein Variablenname angegeben so wird diese Variable komplett geleert aber nicht aus dem Speicher entfernt Ist die Variable ein Array so werden alle Elemente und alle Dimensionen dieses Arrays freige geben und k nnen neu zugewiesen werden Beispiele dec a zahlen 5 a Ein Wert zahlen je 25 Fzahlen 2 SE ig zahlen 3 21 zahlen 4 79 zahlen 2u5y 7r 120057 echo a hat den Wert a echo Das Array hat zahlen 0 Eintr ge reset a r
188. ne Trennlinie angegeben werden geben Sie dazu einfach einen Bindestrich als Element in der Liste an Das Icon kann global f r alle Dialoge ber die Variable app_icon auf eine externe ICO Datei gesetzt werden Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 97 von 138 k5 Sprachreferenz Systemspezifische Operationen CHDIR MKDIR RMDIR Syntax CHDIR Pfad MKDIR Pfad RMDIR Pfad Beschreibung CHDIR wechselt das aktuelle Arbeitsverzeichnis in das gegebene Verzeichnis MKDIR legt das gegebene Verzeichnis neu an Mit RMDIR wird das gegebene Verzeichnis entfernt wobei dieses komplett leer sein muss und keine Unterverzeichnisse enthalten darf Beispiele ehe ne NIMES ENE OSA mkdir c test aee VERNESE Bemerkungen War die jeweilige Operation erfolgreich so erh lt die Variable errorcode den Wert 0 andernfalls 1 Mit dieser M glich keit kann z B gepr ft werden ob ein Verzeichnis existiert oder nicht Um gesamte Verzeichnisse mitsamt Unterverzeichnissen und Dateien zu l schen verwenden Sie die RapidBATCH Library Funktion DELDIR die in der SYSTEM RB Bibliothek definiert ist SYSTEM Syntax SYSTEM Kommando Beschreibung F hrt ein Betriebssystemkommando oder Programm aus Dies sind unter Windows reine DOS Befehle Das Script wartet solange mit der Ausf hrung bis das mit SYSTEM gestartete Programm beendet wurde Beispiele Swisjse minder STE Beme
189. ng dieses Widgets ist quivalent zu der des INPUT Widgets Widgets vom Typ EDIT_LINEWRAP haben die Besonderheit dass nur eine vertikale Scroll bar existiert Alle Zeilen die ber die Breite des EDIT_LINEWRAP Widgets hinausschie en werden dabei automatisch umgebrochen Beim Auslesen des Widgets sind allerdings nur wirkliche Zeilenumbr che die der Benutzer manuell eingegeben hat vorhanden Vorteil von EDIT_LINEWRAP Widgets ist dass diese Widgets f r die Eingabe von flie enden Texten wie z B HTML Code usserst effizient und ergonomischer sind Der Text kann daher nur bei entsprechender Textl nge vertikal gescrollt werden OPTION OPTION Ein OPTION Widget stellt eine so genannte Checkbox bereit Dies ist ein K stchen welches mit einem H cken versehen werden kann OPTION Widgets werden benutzt um die Auswahl von Optionen zu erm glichen die der Benutzer ein oder ausschalten kann Mit Hilfe des CHECKED Attributes kann der H kchen Status des OPTION Widgets gesetzt bzw ausgele sen werden 0 gehakt 1 nicht gehakt RADIO RADIO Ein RADIO Widget stellt einen so genannten Radio Button bereit Dies ist ein rundes Kn pf chen welches mit einem Punkt gesetzt aktiviert werden kann RADIO Widgets werden meistens zu visuellen Gruppen zusammengef gt von denen jeweils nur ein Widget gesetzt werden kann daher auch der Name da die Funktionsweise der Kn pfe der eines alten Kof ferradios nachempfunden ist
190. ngabefeldes COMBO 1 STATIC_COMBO 1 EVENT_CLOSE Ereignis beim Schlie en eines Dialoges DIALOG 0 EVENT_SIZE a beim Vergr ern Verkleinern eines DIALOG 0 EVENT_MOVE Ereignis beim Verschieben eines Dialoges DIALOG 1 EVENT _MOUSEMOVE Ereignis beim Bewegen der Maus auf einem DIALOG 1 Dialogfenster EVENT _OK a beim Dr cken von Enter auf einem DIALOG 1 EVENT _CANCEL a beim Dr cken von Esc auf einem DIALOG 1 Beispiele rem ACHTUNG rem Dieses Beispiel ist nicht lauff hig da die Widgets die hier rem angesprochen werden noch nicht erzeugt worden sind rem Das Beispiel soll lediglich demonstrieren wie bestimmte rem Attribute von Widgets ermittelt und gehandhabt werden rem Ermitten und extrahieren einer Widget Position getdialog pos myDialog POSITION gettok x pos std_sep 1 gettok y pos std_sep 2 gettok h he pos std_sep 3 gettok breite pos std_sep 4 echo X rer rl echo H he h he Breite breite rem Auslesen des Titels eines Widgets getdialog titel myDialoqg CAPTION chor erstelle are rem Inhalt eines Eingabefeldes auslesen getdialog text myDialog Eingabel TEXT echo Der Text lauter text rem Alle Eintr ge eines Listenauswahlfeldes ermitteln getdialog eintr ge myDialog Listel ITEMS replacevar eintr ge eintr ge std_sep new_line cho eintr ge re
191. nimalwert 0 Maximalwert 100 READONLY Schaltet den Nur lesen Modus von Eingabefeldern ein oder aus EDIT EDT LINEWRAP INPUT PWD 1 schreibbar Standard SELECTION Bei Eingabefeldern Ersetzt den markierten Text durch den als Attributparameter bergebenen Wert Ist kein Text markiert wird der bergebene Text einfach an der Cursorposition eingef gt Bei Listenfeldern Setzt die Auswahl im Listenfeld auf das n chst passende Element Widgets INPUT EDIT EDIT_LINEWRAP LIST_SORTED LIST_MULTI LIST_MULTISORTED STATIC_COMBO Zu ersetzender einzuf gender Text bzw zu markierender Eintrag bei LIST Widget Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 119 von 138 MM 1 Sprachreferenz SELINDEX Setzt die Selektion von Listenauswahlfeldern anhand des Eintrag Indexes der selektiert werden soll LIST LIST_SORTED LIST_MULTI LIST_MULTISORTED Parameterwerte Bei Listenauswahlfeldern mit einfacher Auswahl der Index des zu selektierenden Eintrags bei Listenauswahlfeldern mit Mehrfachauswahl eine Liste getrennt durch Pipes mit den zu selektie renden Indizes SELPOS Setzt den Cursor in einem Eingabefeld auf eine bestimmte Position oder selektiert Text D Widgets INPUT EDIT EDIT_LINEWRAP COMBO Parameterwerte Markierung Cursorposition in der Form Cursorposition Markierungsl nge z B 1 10 markiert die ersten 10 Zeichen 15 0 setzt d
192. nitten haben Sie die Variable errorcode kennen gelernt Diese werden Sie auch am h ufigs ten zur Abfrage von Fehlern verwenden errorcode gibt in fast allen F llen bis auf Ausnahmen bei SHELL und CALL die Werte 0 f r kein Fehler bzw wahr und 1 f r Fehler bzw falsch zur ck Um eine IF oder UNTIL Bedinung etwas professioneller zu realisieren wurden w hrend der Entwicklung von RapidBATCH 5 noch die Variablen true und false hinzugenommen true enth lt standardm ig den Wert 0 false standardm ig den Wert 1 Eine IF Abgrage kann also zum besseren Verst ndnis sowie zur erh hten Dynamik so programmiert werden cheiirssieriresen if errorcode false echo Fehler das Verzeichnis wurde nicht gefunden else echo Das Verzeichnis wurd rolgreich gewechselt endif Zu guter Letzt noch eine Variable die im wahrsten Sinne des Wortes gar nichts tut null Diese Variable hat u a den Zweck Funktions R ckgabewerte abzufangen die nicht ben tigt werden denn nicht immer wird der R ckgabewert einer Funktion wirklich gebraucht Bei Zuweisung an die Variable null wird der Wert im Speicher direkt verworfen muss also nicht erst in eine Pseudo Returnvariable kopiert werden was wiederum unn tzen Speicher Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 50 von 138 k5 Benutzerhandbuch verbrauch zur Folge hat Des weiteren kann null auch als Pa
193. nlos beziehen Die Funktionen und wie sie benutzt werden ist je nach DLL unterschiedlich An dieser Stelle daher nur einige allgemeine Hinweise Die EXT Funktion versucht die angegebene DLL zu laden und dann die angegebene Funktion aufzurufen Wenn nur der Name der DLL angegeben wird ohne Pfad dann wird die DLL zuerst im Anwendungsverzeichnis gesucht und dann im aktuellen Verzeichnis im Windows und im System32 Verzeichnis sowie in allen Verzeichnissen die im Suchpfad aufgef hrt sind Die genaue Reihenfolge h ngt vom Be triebssystem ab und kann bei Windows XP und Windows 2003 auch noch durch einen Registry Eintrag ge ndert wer den Es wird aber immer zuerst das Anwendungsverzeichnis durchsucht Dies ist das Verzeichnis aus dem die EXE Datei gestartet wurde bei einem bersetzten Script oder bei interpretierten Scripts das RapidBATCH Verzeichnis das Verzeichnis welches die Datei RBI32 EXE den RapidBATCH Interpreter enth lt Nach dem Aufruf sollte die interne Variable errorcode gepr ft werden Wenn die DLL oder die Funktion nicht gefunden wurde dann wird errorcode auf 1 false gesetzt Ansonsten enth lt errorcode einen von der DLL festgelegten Wert Wichtig Bei Funktionsnamen wird zwischen Gro und Kleinschreibung unterschieden Der Funktionsname muss daher genau so geschrieben werden wie in der Dokumentation der DLL vorgegeben Beim Namen der DLL wird die Schreibweise dagegen nicht ber cksichtigt DLLs selber programm
194. nmal importiert Beispiele rem Inkludieren der Array Bibliothek include tarray ro rem Array f llen test 1 Hello World Kessel Herora leest mn zVHe lo Norl as rem Aufruf der Bibliotheksprozedur viewarray viewarray test end Bemerkungen Als Dateiname kann keine Variable mit dem Dateinamen als Inhalt angegeben werden Wenn bei INCLUDE oder INCLUDE_ONCE ein relativer Pfad angegeben wurde der vom Scriptverzeichnis aus nicht existiert sucht RapidBATCH automatisch im Library Verzeichnis im RapidBATCH Installationsverzeichnis das Unterver zeichnis LIB Darin befinden sich einige Standardbibliotheken die RapidBATCH als erweiterte Sprachbasis mitf hrt Durch Kopieren einer Library in dieses Verzeichnis kann sie von allen Scripts auf dem System durch einfache Angabe des Dateinamens ohne absoluten Pfad importiert werden Wenn Sie automatisch bei jedem Script welches von RapidBATCH ausgef hrt wird bereits vorab einige Libraries inklu dieren m chten tragen Sie einfach den entsprechenden Sourcecode in die Datei default rb im LIB Verzeichnis ein Diese Datei wird vom Interpreter und vom Compiler automatisch f r jedes Script inkludiert ohne einen expliziten Aufruf von INCLUDE oder INCLUDE_ONCE REM Syntax REM Kommentar Beschreibung REM markiert eine Kommentarzeile im Code mit der das Script kommentiert werden kann REM f hrt keine Aktion aus sie teilt dem Compiler Interpreter lediglich mit dass diese Zei
195. nn auch Attribute wie CAPTION CHECKED oder E NABLED f r einen Men punkt gesetzt werden Wird das MENU Attribut eines Basisdialogs auf leer gesetzt wird das Men entfernt DIALOG a T ORDER Setzt die Z Order Bildschirmanordnung eines Dialogfensters Aa gibt es folgende Modi TOP Das Fenster wird vor allen sichtbaren und aktiven Fenstern geschoben und kann nicht in den Hintergrund gebracht werden Diese Option wird auch vom build in Dialog INFOBOX verwendet Dieser Modus kann durch setzen auf NORMAL wieder verlassen werden BOTTOM Das Dialogfenster wird als letztes Fenster hinter allen sichtbaren Anwen dungsfenstern geschoben Dieser Modus kann durch setzen auf NORMAL wieder ver lassen werden NORMAL Standard Das Fenster wird in den Normalmodus versetzt und kann in den Vorder bzw Hintergrund gebracht werden DIALOG NORMAL BOTTOM E BEE POSITION Setzt die Position eines Widgets Bei Basisdialogen sind X Y Koordinaten relativ zur linken oberen Ecke des Bildschirms bei Child Widgets relativ zur linken oberen Ecke des Basisdialogs zu dem das Widget geh rt Widgets DIALOG BUTTON IMAGEBUTTON INPUT PWD EDIT EDIT_LINEWRAP LABEL OPTION RADIO GROUP IMAGE COMBO STATIC_COMBO LIST LIST_SORTED LIST_MULTI LIST_MULTISORTED PROGRESS Die Angabe der Koordinaten erfolgt in Pixeln PROGRESS ndert den Fortschittsbalken einer Fortschittsanzeige Progressbar PROGRESS EEE a Ein ganzzahliger prozentualer Fortschittswert Mi
196. nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 25 Abfr gen von Werne PPRRRFPERERESPEPPPFFERFEREERBPPEEFEFFFETEFETERPEEEEPEEFERERERPLELEFERL VENER Enen Eanan aaaea EEA 28 Men s und Auswahlm glichkeiten 4444440nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 30 Datei und Verzeichnisauswahl uuuu sssssnnssnnnennnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 32 Systemspezifische Operationen 4444444ssnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 36 Programme starten uuu 42444444nnnnnnnnnnnnnnnnnnunnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 36 Verzeichnisoperationen uuuuussssssnnnennnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 37 Dateioperationen im Filesystem 2 4444444Hnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnannnnnnn nn 38 Dateien lesen und schreiben 44444444444HHnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 40 Programme fernsteuern 2444444nsnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnennnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnne 44 Bearbeiten der Registty 4444444nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 45 Systemspezifische
197. nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnr nn 130 V rdeklariente Varabiem zzree ers ginea a EE a ehe BREI E HEFTE ihre 132 Index Sprachreferenz und vordefinierte Variablen 44444444444Hnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 138 Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 2 von 138 MR h Benutzerhandbuch Was ist RapidBATCH RapidBATCH ist eine beliebte Scriptsprache f r Windows deren Ziel die schnelle und unkomplizierte L sung kleinerer bis mittlerer Software Probleme ist RapidBATCH verfolgt dabei eine ganz bestimmte Philosophie Mit wenig Code viel erreichen Bereits die folgend abgebildeten zwei Zeilen stellen ein vollwertiges und ablauff higes in RapidBATCH programmiertes Software Programm dar echo Hallo 1ch bin ein RapidBATCH Scripti end Zwar sind RapidBATCH Programme die so genannten Scripts von aussen her meist sehr schlicht und einfach gehal ten Unter der Motorhaube steckt jedoch mehr als so manch einer erwarten w rde Mit RapidBATCH k nnen fast alle kleineren und gr eren Software Probleme in wenigen Minuten gel st werden es ist nur eine Frage der Umsetzung RapidBATCH bietet wirklich alles was man zur schnellen Entwicklung kleinerer Programme und besonders f r erweiter te Batch Automatisierungsprogramme ben tigt Dateien erstellen lesen schreiben kopieren verschieben l schen und Dateirechte und
198. nzeige der Dateiliste in einer LISTBOX listbox datei current dateiliste if datei echo Gew hlte Datei datei end C jmksf rb5 tbc32 exe En Die mit FINDFILES erzeugte Dateiliste wird in einer LISTBOX zur Anzeige und Auswahl gebracht FINDFILES erwartet als Parameter einen so genannten Pfad Dateifilter d h es werden nur Dateien die sich im ange gebenen Verzeichnis befinden und dem gegebene Dateifilter entsprechen gelistet F r den Dateifilter k nnen so ge nannte Wildcards benutzt werden Diese Wildcards Platzhalter werden durch die Zeichen und repr sentiert und erm glichen das Suchen nach bestimmten Mustern Ein ist ein Wildcard f r ein beliebiges Textmuster f r ein einzel nes Zeichen Der zweite Parameter repr sentiert die Tiefe bis zu wieviele Unterverzeichnisse eingelesen werden sollen Der Wert 1 bedeutet dass nur das aktuelle bzw angegebene Verzeichnis durchsucht wird 2 durchsucht das aktuelle bzw angege bene Verzeichnis und alle darin enthaltenen Unterverzeichnisse Haben diese Unterverzeichnisse wiederum Unterver zeichnisse werden diese nicht mehr eingelesen Wenn man diese auch einlesen will muss man als Tiefe den Wert 3 angeben Diese Tiefen Angaben lie en sich jetzt bis ins Unendliche fortf hren Wird als Tiefe der Wert 0 angegeben so wird bis zu einer maximalen Verzeichnistiefe von 255 gesucht und gelistet R ckgabewert von FINDFILES ist eine Dateiliste in der jeder
199. oder ListBox_Y den Wert O wird der Dialog automatisch jeweils horizontal oder vertikal zentriert dies ist die Stan dard Einstellung Die Defaultgr e des Dialogs l sst sich ber die Variablen ListBox_Width Breite und ListBox_Height H he setzen Die Angabe bei Positionierungs Dimensionswerten erfolgt in Pixel Das Dialog Icon kann global f r alle Dialoge ber die Variable app_icon auf eine externe ICO Datei gesetzt werden FOLDERBOX Syntax FOLDERBOX Verzeichnis Aufforderungstext Vorgabepfad Beschreibung FOLDERBOX zeigt einen Standard Auswahldialog zum Ausw hlen eines Verzeichnisses an Als Parameter erwartet diese Funktion einen Aufforderungstext sowie einen optionalen Vorgabepfad R ckgabewert ist das gew hlte Verzeichnis oder ein Leerstring wenn kein Ordner gew hlt wurde oder der Benutzer den Abbrechen Button klickt Ordner suchen Bitte w hlen Sie ein Verzeichnis B win DOWS A E addins k AppPatch H Cache Config O Connection Wizard Crystal Cursors H Debug H Downloaded Installations Downloaded Program Files H Driver Cache v gt Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 94 von 138 MR G Sprachreferenz Beispiele folderbox pfad Bitte w hlen Sie ein Verzeichnis C jmksf rb5 a barech 1 wu echo Das gew hlte Verzeichnis lautet pfad else echo Kein Verzeichnis gew hlt
200. on der Anweisung DEC zum Deklarieren von Variablen und Ar rays Mit der RESET Anweisung kann ein ganzes Array oder auch nur eine einzelne Dimension eines Arrays wieder freigegeben also aus dem Speicher entfernt werden Anzumerken sei hierbei dass RESET nicht die Variable des Arrays selbst sondern nur das Array bzw den Inhalt der Variablen vom Speicher entfernt und zur erneuten Verwendung frei gibt Einfaches Beispiel meinArray 1 Ich bin der erste Eintrag in dem Array meinArray 2 Ich bin der zweite Eintrag in dem Array meinArray 3 Ich bin der letzte Eintrag in dem Array echo Das Array beinhaltet momentan meinArray 0 Elemente rem Array l schen reset meinArray echo Das Array beinhaltet momentan meinArray 0 Elemente meinArray 1 Neuer Inhalt meinArray 2 Noch ein neuer Inhalt echo Das Array beinhaltet momentan meinArray 0 Elemente end Die Vorteile die Arrays in RapidBATCH mit sich bringen sind sehr vielf ltig vor allem ihre 100 ige Dynamik die andere Programmier und Scriptsprachen gar nicht oder nicht in diesem Umfang bieten Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 17 von 138 k5 Benutzerhandbuch Prozedurale Programmierung Benutzerdefinierte Prozeduren und Funktionen Eines der effektivsten neuen Features von RapidBATCH 5 ist die Einf hrung von benutzerdefinierbaren Pr
201. onl1 CAPTION amp Ok rem Setzen von Textinhalten in Eingabefeldern letdialog myDialog Eingabe TEXT Diesen Text k nnen Si letdialog myDialog Editor TEXT Dieser Text hier ist rem F llen der Listen von LIST LIST_SORTED und COMBO I letdialog myDialog Liste ITEMS Montag Dienstag Mi letdialog myDialog Combo ITEMS Samstag Sonntagqg rem H kchen bei OPTION RADIO und MENU Elementen ein ausschalten Terdialogi myDinlogaOpe Tonik EctReREDiI on kSromakogik my DMallog Ra dT olk CHECKED E letdialog myDialog Menu_ amp Nichts machen CHECKED 0 rem Eingabefokus setzen Teedialog myDialeg Eingaber Rocusi rem Dialogelement aktivieren deaktivieren letdialog myDialog Eingabe ENABLED 1 letdialog myDialog Eingabe ENABLED 0 rem Tooltip setzen letdialog myDialog Buttonl TOOLTIP Dr cken Sie hier drauf rem Setzen Ersetzen von markiertem Text bzw Eintrag aus LIST Element letdialog myDialog Eingabe SELECTION Neuer Text kertcdraloguimyDr alog Belize a AAS ETECH ON e Ap poara letdialog myDialog Liste SELECTION Dienstag rem Cursorposition Markierung setzen letdialog myDialog Eingabe SELPOS 1 1 Teedallo ga myDikallegr EATEOr lSETPOS soon rem Schriftart setzen letdialog myDialog Eingabe FONT Courier New 12 0 letdialog myDialog Buttonl FONT Arial Black 10 2 rem Sichtbarkeit ein ausschalten letdiralogi myDia logik Ywasana na WO Co
202. orld show wait 2000 echo INFOBOX wird jetzt ausgeblendet InfoBox_Enabled hide echo INFOBOX ist jetzt ausgeblendet end Da INFOBOX ein komplett eigener Dialog von RapidBATCH ist Messageboxes werden von Windows selber bereitge stellt l sst er sich auch individualisieren z B kann die H he und Breite des Dialogs mit Hilfe der vordeklarierten Variab len InfoBox_Height und InfoBox_Width vom Programmierer beeinflusst werden Die Angabe der Gr e erfolgt in Pi xeln die Zentrierung des Dialogs auf dem Bildschirm findet automatisch statt kann aber auch durch das Setzen der Variablen InfoBox_X und InfoBox_Y auf eine beliebige Position des Bildschirms erfolgen Wird InfoBox_X und oder InfoBox_Y auf den Wert 0 gesetzt erfolgt eine automatische Zentrierung des Dialogs auf der jeweiligen Achse was der Standard Einstellung entspricht Abfragen von Werten Um Werte vom Benutzer abzufragen stellt RapidBATCH gleich drei verschiedene leistungsstarke Dialoge zur Verf gung H ufigste Verwendung findet dabei die bereits kennengelernte INPUTBOX Dieser Dialog erm glicht eine Eingabeauf forderung in die der Benutzer einen Wert z B einen Namen oder eine Zahl eingeben kann INPUTBOX ist eine Funkti on deren R ckgabewert der eingegebene String ist und ben tigt drei Parameter n mlich den Dialog Titel einen Auf forderungstext sowie einen Vorgabewert der direkt im Eingabefeld eingeblendet wird und vom Scrip
203. owie Windows Systeme mit vergr erter Fensterdarstellung anpzupassen mouse _x mouse_y Beschreibung Geben die aktuellen X und Y Pixelpositionen des Mauszeigers zur ck Durch zuweisen der jeweiligen Variable wird der Mauscursor auf die gew nschte Position auf der entsprechenden Achse gesetzt Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 135 von 138 MR 7 Sprachreferenz null Beschreibung Die Pseudo Variable null wird eingesetzt um beispielsweise einen nicht ben tigten Parameter der an eine Prozedur bergeben wird anzugeben oder um den R ckgabewert einer Funktion der nicht ben tigt wird was manchmal der Fall sein kann abzufangen null ist in dem Sinne keine Variable Werte die an null bergeben werden werden im Spei cher sofort verworfen Wird null ausgelesen enth lt sie einen Leerstring OpenBox_DefFileExt SaveBox_DefFileExt Beschreibung Definiert f r den jeweiligen Dialog eine Standard Dateierweiterung die automatisch an einen im OPENBOX bzw SA VEBOX Dialog eingegebenen Dateinamen OHNE Dateiendung angeh ngt wird Die Angabe eines Punktes ist hier nicht erlaubt nur die reine Dateiendung selber z B TXT f r Textdateien ownname Beschreibung Dateiname des Scripts Bei interpretierten Scripts der Dateiname der RB Datei bei kompilierten Scripts der Name und Pfad der EXE Datei RB_Version RB_Pro Beschreibung
204. ozeduren und Funktionen ein Feature das f r die moderne strukturierte Programmierung einfach unerl sslich ist Mit Prozeduren k nnen Sie die Programmierung Ihrer Scripts erheblich beschleunigen indem Sie neue Befehle und Funktionen die genau f r Ihre Anwendungen zugeschnitten sind einfach selbst in RapidBATCH als kleine Unterprogramme implemen tieren Eine Prozedur l sst sich also quasi als eine Zusammenfassung von mehreren RapidBATCH Anweisungen und Kontrollstrukturen zu einer komplett neuen Anweisung oder Funktion die dann in RapidBATCH verwendet werden kann beschreiben Prozeduren werden einmal in einem Script definiert und k nnen anschlie end wie ganz normale Anweisungen oder Funktionen gehandhabt werden Es ist daher sinnvoll Prozedurdefinitionen immer zu Anfang eines RapidBATCH Scripts anzugeben Werden die gleichen Prozeduren in mehreren unterschiedlichen Scripts verwendet so k nnen diese in einer separaten Script Datei als Library Datei definiert und sp ter zur Verwendung im eigentlichen Script mittels der INCLUDE Anweisung eingebunden werden mehr zu diesem Verfahren jedoch sp ter Eine einfache Prozedur ohne R ckgabewert wird mit dem Schl sselwort PROC eingeleitet Direkt nach PROC folgt der Name ber den die neue Prozedur aufgerufen werden soll Dieser darf keine Leer oder Sonderzeichen enthalten Nach dem Prozedurnamen kann dann gefolgt von einem Doppelpunkt eine Liste an Parametervariablen die pro Variable
205. p f r das jeweilige Widget Tooltips sind Hilfstexte die aufgeblendet werden wenn der Benutzer mit der Maus ber ein Widget f hrt Widgets DIALOG BUTTON IMAGEBUTTON INPUT EDIT EDIT_LINEWRAP LIST LIST_SORTED LIST_MULTI LIST_MULTISORTED COMBO STATIC_COMBO RADIO OPTION GROUP IMAGE PWD PROGRESS Ein beliebiger Hilfstext Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 120 von 138 MM 7 Sprachreferenz VISIBLE Setzt die Sichbarkeit eines Widgets Widgets DIALOG BUTTON IMAGEBUTTON INPUT EDIT EDIT_LINEWRAP LIST LIST_SORTED LIST_MULTI LIST_MULTISORTED COMBO STATIC_COMBO RADIO OPTION GROUP IMAGE PWD PROGRESS Parameterwerte 0 sichtbar 1 unsichtbar WIDTH Breite eines Widgets Widgets DIALOG BUTTON IMAGEBUTTON INPUT EDIT EDIT_LINEWRAP LIST LIST_SORTED LIST_MULTI LIST_MULTISORTED COMBO STATIC_COMBO RADIO OPTION GROUP IMAGE PWD PROGRESS Parameterwerte Die Widget Breite in Pixel x Die X Position eines Widgets Bei Basisdialogen ist diese Koordinate relativ zur linken oberen Ecke des Bildschirms bei Child Widgets relativ zur linken oberen Ecke des Basisdialogs zu dem das Widget geh rt Widgets DIALOG BUTTON IMAGEBUTTON INPUT EDIT EDIT_LINEWRAP LIST LIST_SORTED LIST_MULTI LIST_MULTISORTED COMBO STATIC_COMBO RADIO OPTION GROUP IMAGE PWD PROGRESS Parameterwerte Die X Position des Widgets in Pixel Die Y Position eines Widgets Be
206. peratoren und f r Addition Subtraktion Multiplikation Division und Modulo Restwert k nnen Vari ablen und Werte auch berechnet werden Wichtig ist hierbei dass die Variablen einen numerischen Wert enthalten Enth lt der Wert einer Variablen z B den Text Hallo anstatt einer Zahl so wird er bei einer Berechnung als 0 interpre tiert Folgendes Script zeigt wie man mit Hilfe des Additions Operators eine Addition in RapidBATCH durchf hrt al 2 Pol Ss ergebnis echo a end Da man Werte auch direkt berechnen kann hat folgendes Script genau dieselbe Ausgabe lal 8 b ergibt ergebnis al 2 Bol 3 echo el a el ergibt fal e Mol end Hier weisen wir den Wert nicht vorher einer Variablen zu sondern lassen ihn direkt bei der Ausgabe berechnen also da wo das Ergebnis ben tigt wird RapidBATCH 5 ist hierbei sehr flexibel Es k nnen somit beispielsweise auch ganze Formeln durch Klammernsetzung in einem Rutsch berechnet werden ial 15 Bel A Se ho zu o EZ ae ze end Obiges Script w rde zur Ausgabe des Wertes 10 f hren Zudem bietet RapidBATCH bei Zuweisungen eine verk rzte Schreibweise an um z B einen Wert auf sich selber aufzu addieren El NS ist quivalent zur bisher bekannten Zuweisung al lal gt Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 10 von 138
207. pidBATCH HelloWorld if errorcode 1 echo Fehler beim L schen von Registry Wert end Bemerkungen Schl gt GETREGVAL fehl weil z B der zu lesende Wert nicht existiert so erh lt errorcode den Wert 1 und gibt einen Leerstring zur ck Ansonsten erh lt errorcode den Wert 0 Verwenden Sie LETREGVAL und DELREGVAL um Registry Werte zu schreiben oder zu l schen LETREGVAL Syntax LETREGVAL Datentyp Hauptschl ssel Unterschl ssel Wertbezeichner Wert Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 109 von 138 k5 Sprachreferenz Beschreibung LETREGVAL schreibt einen Wert in die Registry Parameterwerte sind der Datentyp der Hauptschl ssel der Unterschl ssel der Bezeichner des Registry Wertes und der zu schreibende Wert Existiert der Wert noch nicht in der Registry so wird er neu erstellt andernfalls ge ndert Als Datentyp k nnen die build in Konstanten STRING Standard DWORD und BINARY angeben werden auch repr sentiert durch die numerischen Werte 0 1 und 2 Wird als Datentyp BINARY verwendet so muss der Parameter Wert wie bei der Anweisung PUTFILE als eine ASCIl Zeichencodeliste bergeben wird in der jeder zu schreibende Wert durch das Standard Separationszeichen voneinander getrennt ist Als Hauptschl ssel sind folgende Werte als build in Konstanten definiert CLASSES_ROOT f r HKEY_CLASSES_ROOT CURRENT_CONFIG f
208. pyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 122 von 138 mehrzeilig hp 7 Sprachreferenz eedaSllogs myDaaleg BU CEON ar zT STETEN er rem Men auf einem Dialogfenster erzeugen letdialog myDialog MENU gDatei amp Neu gf fnen amp Beenden rem Statusbars auf einem Dialogfenster erzeugen letdialog myDialog STATUSBAR Eine einfache Statusbar status Diese Statusbar 300 status jJist in mehrere Bereiche 500 status unterteilt ScereenWidth letdialog myDialog STATUSBAR status rem Ausschalten von Ereignissen kercdirailioogr a mnyDieallogrBuEFom EZ EVENTECLEER EZ letdialog myDialog EVENT_CLOSE false rem Einschalten von Ereignissen letdialog myDialog Eingabe EVENT_CHANGE 0 letdialog myDialog EVENT_CLOSE true Bemerkungen Im Fehlerfall z B wenn das angegebene Widget nicht gefunden wurde erh lt die Variable errorcode den Wert 1 ansonsten 0 Zum Auslesen der bei LETDIALOG gesetzten Werte sowie z B vom Benutzer ver nderter Werte z B in einem Editfeld wird die Funktion GETDIALOG verwendet Die Anweisung NEWDIALOG erm glicht das Erzeugen von Widgets GETDIALOG Syntax GETDIALOG Attributswert Widget Label Attributsbezeichner Beschreibung Gibt den Wert eines Widget Attributs zur ck Die Funktion erwartet neben dem Widget Label b
209. r Name rem Benutzernamen in Grossbuchstaben konvertieren upvar benutzer benutzer rem Ausgabe des Benutzernamens echo Ihr Name in Gro buchstaben lautet benutzer end Funktionen haben i d R mindestens einen Parameter hier ist es der Text der in Gro buchstaben konvertiert werden soll Hat eine Funktion mehrere Parameter so werden diese durch Kommata voneinander getrennt Wenn Sie sp ter selbst Ihre eigenen Funktionen programmieren sind auch parameterlose Funktionen m glich Alle build in Funktionen von RapidBATCH zur Stringmanipulation beginnen entweder mit einem Get oder h ren mit einem Var auf Dies ist kein direkter Standard wenn Sie eigene Funktionen programmieren ist dies v llig irrelevant nur wurden und werden alle neu hinzugekommenen und hinzukommenden build in Funktionen an diese alte Namens umgebung die bereits seit RapidBATCH 1 0 bekannt sind angelehnt Insgesamt bietet RapidBATCH 12 solcher build in Funktionen diese hei en UPVAR LOWVAR TRIMVAR GETCHR GETASC COPYVAR GETCHARAT GETTOK GETPOS REPLACEVAR CNTVAR und RANDVAR Ihre Verwendung und praktische Beispiele k nnen inder Sprachreferenz dieses Handbuches nachgeschlagen werden Es gibt in RapidBATCH nat rlich eine Vielzahl von anderen build in Funktionen wie z B den Dialog INPUTBOX auch eine Funktion dessen R ckgabewert der eingegebene String ist Die oben aufgef hrten build in Funktionen haben allerdings den Zweck dass Sie e
210. r auf ein weiteres Dialogfenster von RapidBATCH zugreifen Die EDITBOX EDITBOX erm glicht es einen kompletten Text vom Benutzer editieren zu lassen hnlich wie in einem Text Editor l sst sich in der EDITBOX das Textfenster scrollen und durch Ziehen mit der Maus vergr ern oder verkleinern EDITBOX arbeitet im Grunde genauso wie INPUTBOX da durch Klicken des am unteren Rand befindlichen OK Buttons der im Textfeld eingegebene editierte Text oder durch anklicken des Cancel Buttons bzw des Schlie en Buttons rechts oben ein Leerstring an die beim Funktionsaufruf angegebene R ckgabe Variable zur ckgegeben wird Bitte geben Sie einen Text ein Hier kann ein beliebig langer Text editiert werden Cancel Der EDITBOX Dialog zur mehrzeiligen Eingabe bzw Bearbeitung von Texten und Werten Als Parameter erwartet die EDITBOX Funktion einen Fenstertitel den Text der im Editierfeld stehen soll und einen Style Parameter ob der Text im Editierfeld editierbar Wert writeable oder 0 oder nicht editierbar Wert readonly oder 1 ist Dieser Parameter erm glicht dann auch die Anzeige von Text ohne dass der Benutzer diesen editieren kann beispielsweise um eine ReadMe Datei oder einen Lizenztext bei einem Setup Script anzuzeigen Beispiel rem Texte editieren mit EDITBOX editbox text Bitte geben Sie einen Text ein writeable msgbox Der Text lautet text 64 end Der EDITBOX Dialog kann mit Hilfe der vordekl
211. r benutzerorientiert zu speichern Auch Informationen ber Dateiendungstypen sowie alle nur erdenklichen Systemeinstellungen sind in der Registry hinterlegt Damit entf llt auch die Verm llung der Festplatte durch Konfigurations und INI Dateien fast g nzlich Editiert und betrachtet werden kann die Registry mit dem Windows eigenen Werkzeug regedit welches bei jeder Win dows Version mitgeliefert wird Die Registry ist hnlich dem Dateisystem von Windows aufgebaut wobei es 5 so genannte Hauptschl ssel gibt Ein Registrierungsschl ssel ist eine Art Ordner in der Registry und kann theoretisch gesehen unendlich viele Unterschl s sel haben In jedem Schl ssel k nnen zus tzlich eine unbegrenzte Anzahl von Werten abgelegt werden welche einen Namen und den ensprechend hinterlegten Wert haben Folgend eine Auflistung der 5 Hauptschl ssel und deren Bedeutung e HKEY_CLASSES_ROOT e Hier werden Informationen ber die verschiedenen Dateitypen gespeichert Darunter fallen die Beschreibung das Symbol und die verkn pfte Anwendung e HKEY_CURRENT_USER e Hier werden Einstellungen und Informationen zu Software gespeichert die nur f r den aktuellen Windows Benutzer gelten Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 45 von 138 k5 Benutzerhandbuch HKEY_LOCAL_MACHINE Hier werden von allen Benutzern geteilte Einstellungen und Informationen gespeichert HKEY_USERS Enth lt de
212. r richtig end Wie Sie sehen werden wird das PWDBOX Eingabefenster eine INPUTBOX mit verstecktem Eingabefeld f r Passw r ter solange wieder angezeigt bis der Benutzer das richtige Passwort in diesem Fall hallo eingegeben hat Bei dieser Bedingung handelt es sich um eine Gleichheitsbedingung d h sie liefert das Ergebnis WAHR wenn beide zu verglei chende Werte exakt den selben Wert beinhalten Neben dem Gleichheitsoperator kann man bei Bedingungen in RapidBATCH auch die Bedingungsoperatoren ungleich gr er als gt kleiner als lt sowie gr er gleich gt und kleiner gleich lt verwenden um eine Bedingung zu konstruieren Die letzten vier k nnen in RapidBATCH 5 auch mit Strings benutzt werden da z B der Buchstabe A kleiner als der Buchstabe B ist In RapidBATCH 4 x waren gr er als und kleiner als Bedingungen nur mit numerischen Werten m glich Zudem empfehle ich den Code welchen Sie zwischen die Anweisungen REPEAT und UNTIL schreiben mit Leerzei chen oder Tabs einzur cken denn dies verbessert die Lesbarkeit des Codes erheblich und tr gt zur schnelleren Fehler suche bei da der Code der zur Schleife geh rt durch die Einr ckung direkt hervorsticht Schleifen sind jedoch nur eine M glichkeit der bedingten Programmierung in RapidBATCH Die andere viel h ufiger verwendete Methode ist die IF Anweisung die zusammen mit den Anweisungen ELSEIF ELSE und ENDIF in den ver schiedensten Variationen ein
213. rameter bei Anweisungen oder Funktionen bergeben werden wenn man einen Leerstring bergeben will null ist also die aussagekr ftigere Alternative zur Angabe eines Leerstrings Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 51 von 138 MM h Benutzerhandbuch Benutzerdefinierte Dialogprogrammierung Erstellung von Dialogfenstern Mit RapidBATCH 5 ist es auch erstmals m glich eigene Dialogfenster direkt in RapidBATCH zu implementieren Rapid BATCH verwendet dazu ein sehr einfaches aber augekl geltes System welches es m glich macht Dialogfenster zu erstellen und Dialogfensterelemente zu ver ndern und auszulesen Mit nur ingesamt f nf verschiedenen Anweisungen bzw Funktionen haben Sie somit die Entwicklung eigener Windows Programme mit und in RapidBATCH voll im Griff und k nnen so gut wie jede Art von Dialog und damit echte Windows Anwendungen in RapidBATCH selber implementieren Im Grunde ist die Entwicklung von eigenen Dialogen in RapidBATCH eine simple und unkomplizierte Angelegenheit e Dialogelemente erzeugen e Were Eigenschaften der Dialogelemente setzen e Dialogfenster anzeigen e Dialog starten auf Ereignisse reagieren und Werte Eigenschaften der Dialogelemente auswerten Folgend dargestelltes Beispielscript f hrt genau diese Schritte durch Es erstellt einen Dialog mit einem einzeiligen Ein gabefenster und einem Button Klickt der Benutzer den Button so wird d
214. re Zeichenkette zur ckgegeben LocalAlloc hat ja den angeforderten Speicherbereich mit Nullen gef llt Der R ckgabewert der Funktion hier z B 11 wird von RapidBATCH in der Variablen errorcode gespeichert return ERROR_BAD_INPUT Der Puffer ist verf gbar die Trennzeichenkette ist korrekt Jetzt k nnte die Funktion EnumWindowsProc aufgerufen werden Allerdings hat die Funktion keinen Zugriff auf die Variablen und Parameter dieser Funktion deshalb werden die ben tigten Werte zus tzlich in globalen Variablen gespeichert gsBuffer Output gsSeparator Input Jetzt ist aber alles bereit los geht s Der R ckgabewert der Funktion EnumWindows wird ignoriert da er dem letzten R ckgabewert der Funktion EnumWindowsProc entspricht und das Ergenkis TRUE oder FALSE in diesem Beispiel keine Rolle spielt Der zweite Parameter hier NULL wird von EnumWindows an unsere Callback Funktion EnumwWindowsProc weitergereicht Da er nicht ben tigt wird wird hier NULL bergeben EnumWindows EnumWindowsProc LPARAM NULL EnumwWindows ruft jetzt unsere Funktion EnumWindowsProc mit allen Fensternummern auf und kehrt dann hierhin zur ck An dieser Stelle ist die Liste der Fenster berschriften erstellt Bleibt nur noch das Beenden dieser Funktion Der R ckgabewert ist 0 Null um den erfolgreichen Abschl
215. rem rem ii sticle ZN rem rem if IswindowVisible hwnd rem rem if gsBuffer NOn rem streat gsBuffer gsSeparator rem rem streat qgsBuffer Title rem rem if strlen gsBuffer strlen gsSeparator TEXTSIZE lt BUFFSIZE rem return TRUE rem else rem return FALSE rem rem rem rem return TRUE rem rem rem int __declspec dllexport _cdecl rbxCreateWindowList char Output char In puer alas Tapu cCoune rem rem if Output NULL rem return 1 rem rem Qutput LocalAlloc LPTR BUFFSIZI rem if Output NULL rem return 1 rem rem if InputCount 1 Input NULL Input NULL Input 0 Seren r inpue ETEX TESTER rem rem return 2 y rem rem rem qsBuffer Output rem ossepemacors Anput rem rem EnumWindows EnumWindowsProc LPARAM NULL rem rem rerurnil Dee rem rem rem rem Aufruf der Funktion ext fensterliste Test dll rbxCreateWindowList new_line echo Offene Fenster new_line new_line fensterliste end Ei Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 82 von 138 k5 Sprachreferenz Bemerkungen Beim ersten Aufruf einer Funktion aus einer DLL wird die DLL in den Speicher geladen und initialisiert Die DLL
216. rennt durch Pipe Zeichen der gew hlten Eintr ge bei Mehrfachauswahl SELPOS Position des Cursors in einem Eingabewidget und L nge der Markierung Widgets INPUT EDIT EDIT_LINEWRAP PWD COMBO R ckgabewert Markierung Cursorposition in der Form Cursorposition Markierungsl nge z B 110 STATUSBAR Statusbar Descriptor eines Dialogfensters DIALOG EEE FREE EEE VE R ckgabewert Der Statusbar Descriptor der bei LETDIALOG gesetzt wurde oder ein Leerstring wenn keine Statusbar existiert STYLE Dialog Style DIALOG oo d i R ckgabewert Der Style Wert Wurde dem Widget kein Style zugwiesen Default Style STANDARD wird ein Leerstring zur ckgegeben TEXT Inhalt des Textbereichs eines Eingabe Widgets Widgets EDIT_LINEWRAP R ckgabewert Der Text des entsprechenden Widgets TOOLTIP Hilfstext des Tooltips eines Widgets Widgets DIALOG BUTTON IMAGEBUTTON INPUT PWD EDIT LABEL OPTION RADIO GROUP IMAGE COMBO STATIC_COMBO LIST LIST_SORTED R ckgabewert Der Text des entsprechenden Tooltips Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 126 von 138 kj Sprachreferenz TYPE Gibt den Typ eines Widgets als String zur ck Widgets DIALOG BUTTON IMAGEBUTTON INPUT EDIT EDIT_LINEWRAP LIST LIST_SORTED LIST_MULTI LIST_MULTISORTED COMBO STATIC_COMBO RADIO OPTION GROU
217. rkungen Die Variable errorcode erh lt den Wert 1 wenn kein COMMAND COM oder CMD EXE gefunden wurde andernfalls 0 SHELL Syntax SHELL Programmpfad Anzeigemodus Beschreibung F hrt ein externes Programm aus Das Script wird dabei fortgef hrt so dass das gestartete Programm mit dem Script parallel l uft Multitasking Die An weisung erwartet einen Programmpfad EXE COM oder BAT und einen Anzeigemodus der entweder durch eine Zahl oder eine der build in Konstanten repr sentiert wird M gliche Werte sind SHOW 0 HIDE 1 MAXIMIZED 2 und MINIMIZED 3 Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 98 von 138 MR 5 Sprachreferenz Beispiele shell c windows calc exe show shell c windows desktop test bat hide Bemerkungen errorcode erh lt einen Wert gt 32 die Prozess ID des Programms wenn das Programm erfolgreich gestartet werden konnte CALL Syntax CALL Programmpfad Anzeigemodus Beschreibung Startet ein Programm im Modalmodus Das bedeutet dass das RapidBATCH Script mit der Ausf hrung solange wartet bis das mit CALL gestartete Programm beendet wurde Aquivalent zu SHELL ben tigt CALL einen Anzeigemodus Parameter der entweder durch eine Zahl oder eine der build in Konstanten repr sentiert wird M gliche Werte sind SHOW 0 HIDE 1 MAXIMIZED 2 und MINIMIZED 3 um Programme beispielsweise minimiert oder versteckt zu
218. rld alt fstest txt enter end Bemerkungen errorcode erh lt 1 wenn ein Fehler auftrat z B wenn das Fenster nicht gefunden wurde ansonsten 0 MOUSEEVENT Syntax MOUSEEVENT Ereignis Befehl Positionsangabe Beschreibung Simuliert Mausaktionen Die Windows Maus wird dabei von RapidBATCH ferngesteuert es kann also eine komplette Automatisierung von Maus bewegungen Klicks und anderen Mausereignissen erfolgen Als Parameter werden ein Event Kommando sowie die jeweilige X und Y Koordinate in Pixel als Stringausdruck im Format X Position Y Position erwartet wobei das Pipe Zeichen das als Standard Listenseparator definierte Zeichen Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 113 von 138 3 Sprachreferenz repr sentiert Dieses Event Kommando wird durch eine Zahl oder die jeweilige build in Konstante repr sentiert und simuliert Maustastenereignisse 0 oder MOVE Maus nur bewegen kein Tastendruck 1 oder CLICK_LEFT einfachen Linksklick simulieren 2 oder DBLCLICK_LEFT doppelten Linksklick simulieren 3 oder CLICK_RIGHT einfachen Rechtsklick simulieren 5 oder DOWN_LEFT Linke Maustaste gedr ckt halten 6 oder UP_LEFT Linke Maustaste loslassen 7 oder DOWN _RIGHT Rechte Maustaste gedr ckt halten 8 oder UP_RIGHT Rechte Maustaste loslassen Beispiele infobox MouseEvent Demo wait 1000 show rem Prozedur zur
219. s newdialog myDialoq DIALOG 200 200 500 250 rem Erzeugung eines Buttons auf dem oben erzeugten Dialogfenster newdialog myDialog myButton BUTTON 1 1 100 25 Bemerkungen Schl gt die Erzeugung eines Widgets fehl erh lt errorcode den Wert 1 ansonsten 0 Verwenden Sie die Anweisung LETDIALOG um Eigenschaften eines Widgets zu ver ndern Verwenden Sie gegenteilig zu LETDIALOG die Funktion GETDIALOG um Eigenschaften eines Widgets zu ermitteln Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 116 von 138 MM 7 Sprachreferenz Mit Hilfe der RUNDIALOG Funktion l sst sich auf Ereignisse die mit oder auf dem Widget auftreten k nnen z B ankli cken eines Buttons durch den Benutzer warten und anschlie end anhand des zur ckgelieferten Event Strings reagie ren Bis auf Dialogfenster werden alle Widgets sofort sichtbar geschaltet Basisdialoge m ssen vor der ersten Ausf hung von RUNDIALOG sichtbar gemacht werden mit Hilfe der Anweisung LETDIALOG und der Dialogeigenschaft VISIBLE Wird ein Dialogfenster innerhalb einer Library Funktion erzeugt sollten seine Ressourcen nach Beedingung des Dialo ges mit der Anweisung DELDIALOG wieder freigegeben werden LETDIALOG Syntax LETDIALOG Widget Label Attributsbezeichner Attributsparameter Beschreibung LETDIALOG erm glicht das Setzen verschiedenster Widget Attribute und Ereignisse Die Anweisung erwartet neben
220. schon global existiert und RapidBATCH annimmt wir wollten auf die globale Variable i die ja bereits existiert zugreifen Deshalb m ssen wir die Variable i nun explizit noch einmal f r diese Prozedur deklarieren indem wir die DEC Anweisung ver wenden pip o rProcteste dec i El it echon aist Mier a e endproc echo i ist hier i test echo Mi ist hier ERPI end In diesem Falle wird i neu als lokale Variable in der Prozedur test deklariert Nach Beendigung der Prozedur wird die lokale i Variable aus dem Speicher entfernt und es kann die alte globale i Variable weiter verwendet werden M glicherweise haben Sie noch ein wenig Probleme den Sinn hinter den lokalen und globalen Variablen richtig zu durchschauen aber je mehr Sie in RapidBATCH programmieren desto klarer werden solche Strukturen und Zusam menh nge werden Wie Sie professionell die prozedurale Programmierung in RapidBATCH ausnutzen k nnen wird in den folgenden Kapi teln genauer erl utert Professionelle Anwendungsbeispiele finden Sie auch in den zahlreichen Beispielprogrammen und Bibliotheksfunktionen die das RapidBATCH Programmpaket beinhaltet Rekursive Programmierung von Prozeduren Bei der rekursiven Programmierung ruft sich eine Prozedur oder Funktion in einem Script selbst wieder auf Wichtig dabei ist dass eine Abbruchbedingung gegeben ist weil sich das rekursive Programm sonst theoretisch unendlich oft selbst aufrufen w
221. setzt werden um diese vorzeitig vor dem ENDPROC zu verlassen Hier nun unser obiges Script mit einer Funktion summe rem Funktions Demoscript fune summe werti wert2 dec ergebnis ergebnis wert1 wert2 ret ergebnis endfunc rem Konstante Parameterwerte summe erg 7 13 echo Summe erg rem Variable Parameterwerte inputbox a Wert A Bitte geben Si ine Zahl eins N sel N hale inputbox Ibl Wert B Bitte geben Si ine Zan leima LETO N halt summe erg al b echo Summe erg end Und schon haben Sie Ihre erste eigene Funktion in RapidBATCH programmiert Nat rlich ist dies nur ein einfaches Beispiel denn normalerweise addiert mein zwei Werte direkt im String also echo Summe Ss 2 TE end Als einfaches Modell f r die Programmierung von Prozeduren und Funktionen war dieses Beispiel aber doch recht leicht verst ndlich Interessant wird es erst wenn wir rekursive Prozeduren schreiben oder mit Arrays arbeiten was in den n chsten Kapiteln folgt Eine Sache die an dieser Stelle aber noch sehr wichtig ist sind die bereits angesprochenen lokalen Variablen Man unterscheidet bei der prozeduralen Programmierung immer zwischen globalen und lokalen Variablen In RapidBATCH sind alle Variablen global die ausserhalb von Prozeduren irgendwo im Script Code deklariert werden Auf globale Vari ablen k nnen alle Prozeduren zur Laufzeit zugreifen d h wenn wir eine
222. starten Beispiele echo Starten von Notepad call notepad exe show echo Notepad wurde beendet end Bemerkungen errorcode erh lt 1 wenn ein Fehler auftrat ansonsten den R ckgabewert des gestarteten Programms OPEN Syntax OPEN Pfad Beschreibung OPEN ffnet eine Datei mit dem daf r vorgesehenen Programm oder eine Internetseite im Browser Mit OPEN k nnen auch externe Programme gestartet werden Beispiele open hello doc open http www jmksf com open c windows calc exe open c jmksf rb5 samples hello rb Bemerkungen keine NEWFILE DELFILE Syntax NEWFILE Dateiname DELFILE Dateiname Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 99 von 138 MR 5 Sprachreferenz Beschreibung NEWFILE legt eine neue leere Datei an Existiert die Datei bereits wird Sie mit der neuen leeren Datei berschrieben DELFILE l scht eine vorhandene Datei unwiderruflich Beispiele rem Neue Datei anlegen newfile neu txt rem Temp Datei l schen delfile ausgabe tmp Bemerkungen Ist die jeweilige Operation erfolgreich so erh lt errorcode den Wert 0 ansonsten 1 COPYFILE RENAMEFILE Syntax COPYFILE Quelldatei Zieldatei RENAMEFILE Quelldatei Zieldatei Beschreibung COPYFILE kopiert eine Quelldatei in eine Zieldatei RENAMEFILE verschiebt oder benennt eine Quelldatei in eine Zieldatei um Beispiele rem Datei kopieren
223. sungsblock in einem ELSE zu deutsch Ansonsten zusammenfassen der eben nur dann Ausgef hrt wird wenn alles andere fehlschl gt if eingabe hallo echo Das eingegebene Wort wurde erfolgreich auf hallo gepr ft Ball ar a2 ie x gt VER bhalg lseif eingabe tsch ss echo Auf wiedersehen halt else echo Eingabe ungenau SoLo Neustart endif Manchmal ist es auch von N ten mehr als einen Vergleich bei einer REPEAT UNTIL oder IF ELSEIF Bedingung zu pr fen Zu diesem Zweck stellt RapidBATCH zwei so genannte logische Verkn pfungsoperatoren bereit die UND Verkn pfung amp Operator sowie die ODER Verkn pfung Operator Diese Operatoren werden verwendet um zwei oder mehr Vergleiche logisch zu einer gesamten Bedingung zu verkn pfen Bei der ODER Verkn pfung muss eine der verkn pften Bedingungen wahr sein damit die Abfrage erfolgreich gepr ft wird Beispiel ist folgendes Script Es gibt nur eine Willkommensnachricht aus wenn der eingegebene Name Stefan oder Peter ist inputbox name Log in Wie hei t du if name Stefan name Peter echo Herzlich Willkommen else echo Du bist nicht Stefan oder Peter endif end Anders ist es bei der UND Verkn pfung Hier m ssen beide Bedingungen wahr ergeben damit die Abfrage als erfolg reich gepr ft wird inputbox name Nachname Wie ist dein Nachname inputbox vorname Vorname Wie ist dein
224. t Pfeiltaste Links up Pfeiltaste hoch right Pfeiltaste rechts down Pfeiltaste runter select Auswahl Taste print Druck Taste snapshot Bildschirm Schnappschuss insert Einf gen Taste delete Entfernen Taste help Hilfe taste Iwin Linke Windows Taste rwin Rechte Windows Taste apps Anwendungs Taste f1 F1 Taste f2 F2 Taste f3 F3 Taste Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 112 von 138 k5 Sprachreferenz f4 F4 Taste f5 F5 Taste f6 F6 Taste f7 F7 Taste f8 F8 Taste f9 F9 Taste f10 F10 Taste f11 F11 Taste f12 F12 Taste f13 F13 Taste f14 F14 Taste f15 F15 Taste f16 F16 Taste numlock NumLock Taste scroll Scroll Taste Ishift Linke Umschalt Taste rshift Rechte Umschalt Taste Icontrol Linke Strg Taste rcontrol Rechte Strg Taste lalt Linke Alt Taste ralt Rechte Alt Taste Als Fenstertitel k nnen auch die Prozess ID einer Windows Anwendung oder die build in Konstanten DESKTOP sen det Tastenanschl ge an den Desktop SHELL sendet Tastenanschl ge an die Shell und FOREGROUND sendet Tastenanschl ge an das aktuelle Vordergrundfenster bergeben werden Beispiele rem Notepad starten shell windir notepad exe show rem Tastenkombinationen senden sendkeys Unbenannt Editor Hello Wo
225. t Benutzer ge ndert oder auch ganz ersetzt werden kann Ein einfaches Beispiel ist das bereits im Grundlagenkapitel benutzte Script bei dem der Benutzer einen Wert eingeben kann der dann in einer ECHO Messagebox wieder ausgegeben wird inputbox wert Eingabe eines Wertes Bitte geben Si inen Wert ein Hallo echo Der eingegebene Wert lautet wert end Eingabe eines Wertes Bitte geben Sie einen Wert ein Halo x Der INPUTBOX Dialog zur Abfrage von beliebigen Werten Klickt der Benutzer auf den OK Button im Dialog oder auch einfach nur Return wird der in das Textfeld eingegebene Text zur ckgegeben Klickt der Benutzer den Cancel Button oder den Schlie en Button des Fensters rechts oben liefert die Funktion einen Leerstring zur ck Die Beschriftung der Buttons l sst sich durch Setzen der vordeklarierten Variablen InputBox_Ok und InputBox_Cancel ver ndern so da z B auch deutsche Bezeichnungen f r die Buttons dort angegeben werden k nnen Defaultm ig wird die INPUTBOX zentriert auf dem Bildschirm dargestellt Eine beliebige individuelle Anzeigeposition des Dialogs l sst sich allerdings mit Hilfe der vordeklarierten Variablen InputBox_X und InputBox_Y erzielen Setzt man diese auf den Wert 0 Standardwert so bewirkt dies die Zentrierung des Dialogs auf der jeweiligen Achse InputBox_Ok Alles kilar InputBox_Cancel Stop inputbox test Ge nderte Buttons
226. tdialog myaalaleg Wwas ndna Erue machen wir zu guter letzt noch das Fenster sichtbar Nur Dialogfenster Widgets sind nach ihrer Erstellung mit NEWDIA LOG unsichtbar da es nicht empfehlenswert ist das Basisfenster schon zur Anzeige zu bringen wenn noch nicht alle Dialogelemente erzeugt und gesetzt wurden Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 53 von 138 k5 Benutzerhandbuch Anmerkung Wenn Sie eigene Dialoge in RapidBATCH programmieren stellen Sie bitte immer sicher dass das Basis fenster auf sichtbar gesetzt wird bevor Sie die Funktion RUNDIALOG zu der wir gleich kommen werden aufrufen Ist dies nicht der Fall wartet das Script solange bis ein Ereignis auf dem nicht sichtbaren Fenster geschieht Und das wird nie der Fall sein denn wie soll man zum Beispiel auf einem nicht sichtbaren Fenster etwas anklicken Die soeben schon er rterte Funktion RUNDIALOG startet nun eine interne Warteschleife die auf Ereignisse vom Dialog fenster wartet rundialog event 0 Wenn nun beispielsweise ein Button gedr ckt wurde wird ein Ereignis Event ausgel st Die Funktion gibt in diesem Fall einen String im Format Ereignis_Widget Label zur ck In unserem Script wird z B der String click_myDialog Los zur ckgegeben wenn der Und Los Button den wir zuvor definiert haben angeklickt wurde Die bei RUNDIALOG als Parameter bergebene Zahl ist die Anzahl an Mill
227. te an Men Eintr gen getrennt durch Pipe Zeichen diese kann auch leer sein dann wird gar kein Men erzeugt Klickt der Benutzer nun auf das Icon des Tray Men s so liefert die Funktion einen Leerstring zur ck Andernfalls wenn der Benutzer einen Eintrag aus dem Me n ausw hlt wird der entsprechende Men String zur ckgeliefert DE traymenu eintrag Bitte w hlen Sie einen Eintrag aus Eintrag VlEinerag AlEaneraemsn if eintrag cho Der gew hlte Men punkt lautet eintrag else echo Das Icon wurde angeklickt endif end Um ein Men professionell mit Shortcuts auszustatten kann man auch einen Buchstaben jedes Eintrags mit einem amp Zeichen versehen Dies weist RapidBATCH an den nachfolgenden Buchstaben zu unterstreichen so dass dieser als Shortcut fungiert wenn das Men nun offen ist l sst sich mit diesem Shortcut ein Eintrag durch Tastatureingabe aus w hlen Beispiel traymenu eintrag Bitte w hlen Sie einen Eintrag aus Eintrag amp ljEintrag amp 2 Eintrag amp 3 Jetzt kann man die einzelnen Eintr ge mit 1 2 oder 3 auch ber die Tastatur ausw hlen Um ein amp Zeichen im Men auszugeben schreibt man einfach stattdessen amp amp z B traymenu test Ein Test Hello amp amp World brigens das amp Zeichen wird wenn ein Eintrag ausgew hlt wurde wieder mit bergeben daher bitte auch in Bedingun gen auf den Returnwert von TRAYMENU
228. th lt Anschliessend folgt ein in der bereits angesprochenen Makrosprache definierter Satz an Tastenkombinationen die an das fernzusteuernde Programm geschickt werden sollen Nehmen wir nun einmal diese Tastaturkommandos und Tastenkombinationen welches wir bei SENDKEYS an den No tepad Editor senden genauer unter die Lupe Abschnitt A B C D Kommandos Hello World alt ds test txt enter alt f4 Abschnitt A e Hier schreiben wir einfach den Text Hello World in das Eingabefeld des Editors Es muss darauf geachtet werden dass der Cursor im richtigem Feld steht wo der Text rein soll das Eingabefeld hat beim Notepad nach dem starten IMMER den Eingabefokus e Abschnitt B e Jetzt wollen wir den Dialog zum Speichern der Datei ffnen Dazu m ssen wir ALT und D gleichzeitig dr cken Um eine Taste gedr ckt zu halten wird ihr ein Zirkumflex Zeichen vorangestellt Da die ALT Taste eine Sondertaste ist wird diese in Klammern angegeben damit der interne Interpreter f r die SENDKEYS Makrosprache wei das man eine Sondertaste ausgeben m chte e Hier sei zu erw hen da man wenn man wirklich ein Klammerzeichen ausgeben m chte diesem ein Tilde Zeichen voranstellen mu Das Tilde Zeichen erzwingt die Ausgabe des ihm nachfolgendem Zeichens wo mit ein Zirkumflex an das Programm schickt und eine offene Klammer Um ein Tilde Zeichen selbst an das fernzusteuernde Programm zu senden sc
229. uilder eine neue leere Script Datei und geben folgenden Quellcode ein rem Eingabe des Benutzernamens inputbox benutzer Eingabe Hallo wie ist Ihr Name rem Ausgabe des Benutzernamens echo benutzer end Dieses Programm fragt mit Hilfe des INPUTBOX Dialogs zuerst den Namen des Anwenders ab Dieser wird in die Vari able mit dem Namen benutzer gespeichert weil diese vor dem Gleichheitszeichen der INPUTBOX steht Die IN PUTBOX ist eine so genannte Funktion genaueres dazu erl utere ich jedoch sp ter Variablen werden in RapidBATCH immer von eckigen Klammern umschlossen und k nnen berall eingesetzt werden wo auch konstante Werte m glich sind In der darauf folgenden ECHO Anweisung geben wir die Variable wieder aus Dies geschieht durch einfaches Angeben des Variablennamens anstatt eines konstanten Wertes wie wir es im ersten Beispiel getan haben Wir geben hier also anstatt eines festen Wertes den v llig frei vom Anwender des Scripts definierten Wert der Variablen benutzer aus d h die Ausgabe die im Meldungsfenster erscheint ist abh ngig von dem was der Benutzer im Eingabefenster eingegeben hat Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 9 von 138 k5 Benutzerhandbuch Variablen in RapidBATCH k nnen sowohl Texte so genannte Strings zu deutsch Zeichenketten als auch Zahlen speichern berechnen und manipulieren Die Konvertierung zwischen den
230. ult Dateierweiterung f r die build in Dialoge OPENBOX und SAVEBOX ber die Variablen OpenBox_DefFileExt und SaveBox_DefFileExt e Neue vordeklarierte Hilfsvariablen mit Sonderzeichen crif carriage return line feed tab Tabulator pipe Pipe Zeichen und quot einfaches Anf hrungszeichen e Speziell f r Windows XP und Windows 2003 Die Variablen XPStyleActive Metric_Edge_Width Metric_Edge_Height Metric_Caption_Height und Metric_Menu_Height zur Optimierung von benutzerdefi nierten Dialogfenstern bei der Verwendung von Windows XP Themes e _Mitgelieferte erweiternde RapidBATCH Funktionalit ten die durch sieben unterschiedliche Bibliotheken bereit gestellt werden z B Array Bearbeitungsfunktionen erweiterte Systemfunktionen erweiterte Dialogfunktionen sowie weitere Universal Dialoge u v m Diese Bibliotheken k nnen per INCLUDE Anweisung eingebunden werden und wurden selber zu 100 in RapidBATCH implementiert e _ Verbesserter build in Script Debugger mit Prozedurschritt Funktionalit t und verbesserter Verwendbarkeit e Komplett neu entwickelter Programmiereditor RapidBATCH Builder mit deutlich schnellerem Syntax Highlighting und vielen neuen Funktionen wie z B Dateihistorie benutzerkonfigurierbares Werkzeug Men und automatischer Kommentierfunktion e Teile des RapidBATCH Software Pakets wurden sogar in RapidBATCH selbst realisiert Dazu geh ren u a die zahlreichen Hilfswerkzeuge wie z B der Visual
231. ur der identische String Hallo mit gro em H und kleinem allo wie er bergeben wurde clipboard Beschreibung Erm glicht den Zugriff auf die Windows Zwischenablage Wenn clipboard ein Wert zugewiesen wird wird er automatisch in der Zwischenablage verf gbar und kann in anderen Anwendungen eingef gt werden Wenn clipboard ausgelesen wird enth lt sie den aktuellen Textwert der in die Zwischenablage kopiert wurde z B aus Word Wenn es sich bei dem in der Zwischenablage befindlichen Wert nicht um reinen Text handelt z B Bilder Dateien so enth lt clipboard einen Leerstring command Beschreibung Die Variable command enth lt die Kommandozeilenparameter die beim Starten des Scripts bergeben wurden Bei interpretierten Scripts sind dies alle Werte die hinter dem Script Dateinamen beim Interpreteraufruf bergeben wurden bei compilierten Scripts alle Werte nach dem Namen der EXE Datei Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 132 von 138 k5 Sprachreferenz Echo_Title Confirm_Title Beschreibung Definiert den Titel der Dialogfenster ECHO Variable Echo_Title und CONFIRM Variable Confirm_Title Standardwerte sind RapidBATCH Echo bzw RaidBATCH Confirm new_line tab crlf pipe quot Beschreibung Vielfach anwendbare Formatierungszeichen zur Text und Dateiausgabe new_line enth lt einen einfachen Zeilenu
232. usammenf gung der ASCII Werte zu Klartext 1 0 repeat BE ae a getek or leal more ir a ae Pemi Myu getchr ch ch klartext ch endif unta chi rem Anzeigen des Klartextes echo Klartext klartext Bemerkungen Verwenden Sie die PUTFILE Anweisung um einen Wert auf Byte Ebene in eine Datei zu schreiben Schl gt GETFILE fehl erh lt errorcode den Wert 1 und ein Leerstring wird zur ckgegeben Andernfalls erh lt error code den Wert 0 Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 102 von 138 k5 Sprachreferenz PUTFILE Syntax PUTFILE Dateiname Start Position Liste von Zeichencodes Beschreibung Schreibt einen Stringausdruck auf Byte Ebene in eine Datei Als Parameter wird ein Dateiname eine Byte Startposition in der Datei wo der Schreibvorgang begonnen werden soll und eine Liste an ASCIl Zeichencodes die ab Start Position als Zeichen byteweise in die Datei geschrieben werden sollen erwartet Ein ASCII Zeichen entspricht in einer Datei einem Byte und kann maximal einen Wert von 255 annehmen dies ent spricht einem Bin rwert von 1111 1111 also 8 Bit 1 Byte Beispiele rem Schreiben einer Datei auf Byte Ebene rem Nicht existente Datei MUSS zuerst explizit erzeugt werden newfile bytefile bin klartext Dies ist der Klartext der in die Datei geschrieben wird rem Konvertierung des Klartextes in eine Liste an ASC
233. usnutzen sollten Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 5 von 138 MR h Benutzerhandbuch Verbesserungen in Version 5 1 Der aktuelle Release 5 1 kommt mit zahlreichen Neuerungen und kleineren Bug und Hotfixes und macht RapidBATCH 5 jetzt noch produktiver und flexibler als je zuvor e Punkt vor Strichrechnung gilt jetzt in allen Ausdr cken 5 2 3 ergibt ab sofort 11 und nicht 21 e Neues Widget Mit der Progressbar kann jetzt auch eine Fortschittsanzeige auf individuellen Dialogen pro grammiert werden e Neues Widget Das STATIC_COMBO Widget zeigt eine statische Combobox an in der zwar Werte aus einer vorgegebenen Auswahl Dropdown Box ausgew hlt werden jedoch nicht individuell editiert werden k nnen e Neu definierte Makrosprache f r die SENDKEYS Anweisung Anwendungen k nnen jetzt noch einfacher per Tastaturkommandos ferngesteuert werden Die neue Makrosprache ist allerdings nicht abw rtskompatibel Exi sitierende Scripts lassen sich aber leicht an die neue Fernsteuerungs Makrosprache anpa en e Implementierung der Funktion EXT ber EXT lassen sich externe DLL Funktionen ber ein standardisiertes RapidBATCH Funktionsformat aufrufen somit k nnen in andernen Programmiersprachen wie beispielsweise C oder Delphi erstellte Funktionen ber DLL Aufrufe auch direkt aus einem RapidBATCH Script angesteuert werden was v llig neue M glichkeiten er ffnet
234. uss anzuzeigen return 0 Das war s viel Spass beim Selbermachen Und das dazugeh rige Aufruf Script rem Dieses Skript demonstriert die Benutzung von DLLs mit dem EXT Befehl rem es wird die DLL DemoDLL dl1 verwendet rem Startzeit lesen Es wird die Funktion rbxGetTickCount aus der rem DLL DemoDLL d11 verwendet Diese Funktion liefert die Zeit in rem Millisekunden seit dem Start von Windows rem Bei diesem ersten Aufruf einer Funktion aus DemoDLL dl1 wird rem die DLL geladen das wird ber eine MessageBox signalisiert rem Bei weiteren Aufrufen wird die DLL im Speicher benutzt rem daher keine weiteren Meldungen der DLL ext StartTime DemoDLL d1l1 rbxGetTickCount Copyright 2000 2006 by J M K S F Software Technologies Jan Max Meyer All rights reserved Seite 68 von 138 Benutzerhandbuch B rem Auf Fehler berpr fen ae erzaresce 1 N echo Fehler beim Aufruf von lt rbxGetTickCount gt in DemoDLL d11 halt endif rem MessageBox anzeigen und Aktion des Benutzers abwarten rem Der Stil 262196 entspricht 4 A8 D6214A rem d h ein anzeigen 4 und die Auswahl Ja Nein 48 rem anbieten Ausserdem soll die MessageBox immer im rem Vordergrund bleiben 262144 msgbox DemoDLL rb Entscheiden Sie sich 262196 rem Stopzeit holen ext StopTime DemoDLL d11 rbxGetTickCount rem Auf Fehler berpr fen ie errorcode ein
235. verschiedenen Datentypen findet dabei intern statt so dass sich der Programmierer darum nicht explizit k mmern muss Seit RapidBATCH 4 0 m ssen Variablen auch nicht mehr explizit mit der DEC Anweisung was soviel bedeutet wie Declare zu deutsch Deklariere vor ihrer Verwendung deklariert werden DEC spielt aber trotzdem noch eine sehr wichtige Rolle auf die wir aber sp ter erst eingehen m chten Wenn Sie einer Variablen die nicht existiert einen Wert zuweisen wird diese also automatisch im Speicher erzeugt Die Variable ist dann solange im Speicher bis das Script beendet wird Um einer Variable einen Wert zuzuweisen gen gt eine einfache Zuweisung in der Form variable Wert z B benutzer Anna oder um einer Variablen den Wert einer bereits existierenden Variablen zuzuweisen benutzer name Bei Variablenzuweisungen lassen sich Werte auch verketten und berechnen Zu diesem Zweck stellt RapidBATCH sechs verschiedene Operatoren zur Verf gung die zur Verkettung und Berechnung von Werten verwendet werden k n nen Folgendes Script verbindet beispielsweise mit Hilfe des Join Operators eine Variable mit einem konstanten String und weist das Ergebnis dieser Zuweisung der Variablen ausgabe zu ausgabe Aha Ihr Name ist also benutzer Diese Verkettung zweier Werte kann auch direkt als Parameter einer Anweisung angegeben werden Beispiel w re hier echo Aha Ihr Name ist also benutzer Mit den O
236. xt echo test txt wurde ge ndert am d tzen wir das Datum auf den 01 02 2004 e Vrest exe 02012004 rem Nun s letfileda t getfileda d test txt echo test txt wurde ge ndert am d delfile test txt end rc Bemerkungen Wurde die Datei nicht gefunden erh lt errorcode sowohl von LETFILEDATE als auch von GETFILEDATE den Wert 1 ansonsten 0 Der R ckgabewert von GETFILEDATE ist in solch einem Fall ein Leerstring Verwenden Sie GETFILETIME und LETFILETIME um die nderungsuhrzeit einer Datei zu lesen oder zu setzen GETFILETIME LETFILETIME Syntax GETFILETIME Uhrzeit Dateiname LETFILETIME Dateiname Uhrzeit Beschreibung GETFILETIME liest die Anderungszeit einer Datei und gibt diese im Format hhmmss zur ck LETFILETIME setzt die Anderungszeit einer Datei Parameter sind der Dateiname und eine Zeit im Format hhmmss Beispiele newfile test txt getfiletime t test txt echo test txt wurde ge ndert um t rem Nun setzen wir die Uhrzeit auf 14 45 00 ieerrlaceine Veas e exe aaa getfiletime t test txt echo test txt wurde ge ndert um t delrilenlTestriexen end Bemerkungen Wurde die Datei nicht gefunden erh lt errorcode sowohl von LETFILETIME als auch von GETFILETIME den Wert 1 ansonsten 0 Der R ckgabewert von GETFILETIME ist in solch einem Fall ein Leerstring Verwenden Sie GETFILEDATE und LETFILEDATE um ein Dateidatum zu lese
237. zeiger aller Dateien oder nur die Anzeige von ausf hrbaren Pro grammdateien EXE COM BAT Ausf hrbare Programmel exe com bat Alle Dateien Standardm ssig l sst sich in einem OPENBOX bzw SAVEBOX Dialog nur eine einzelne Datei anw hlen Eine Mehr fach Auswahl ist jedoch auch ohne Probleme m glich indem man f r die OPENBOX die Variable OpenBox_MultiSel auf den Wert 0 setzt quivalent SaveBox_MultiSel f r die SAVEBOX Ist diese Variable auf dem Wert 0 so lassen sich mehrere Dateinamen aus der Dateiliste ausw hlen Best tigt der Benutzer nun seine Eingabe mit OK gibt der Dia log eine Liste der Dateinamen und Pfade jeweils getrennt durch Pipe Zeichen zur ck wobei als erstes Listenelement der absolute Pfad zu den Dateien angegeben wird und in den darauf folgenden Elementen die einzelnen Dateiamen ohne den Pfad Folgendes Beispiel zeigt wie man eine Mehrfach Dateiauswahl verarbeitet rem Mehrfachauswahl erm glichen OpenBox_MultiSel 0 rem Dateien ausw hlen openbox dateiliste Dateinamen ausw hlen Alle Dateien if ldaateiliscel Tan rem Pfad auslesen gettok pfad dateiliste 1 rem Dateiliste auslesen i 1 repeat Est E gettok datei dateiliste i BEfdatena E echo Datei Nr mE IV HH ptadil NH idate elseif datei amp i 2 rem Wenn nur eine Datei ausgew hlt wurde steht ihr Name rem und Pfad in pfad echo Einzige
238. zimalzahl newdialog umrechner 1l_dezimal label 5 8 100 22 letdialog umrechner l_dezimal caption Dezimalwert newdialog umrechner dezimal input 110 4 150 25 letdialog umrechner dezimal font Sans Serif 10 2 letdialog umrechner dezimal event_change true rem Label und Eingabefeld f r Zahl des jew Zahlensystems newdialog umrechner 1l_konvert label 5 34 100 22 newdialog umrechner konvert input 110 30 150 25 letdialog umrechner konvert font Sans Serif 10 2 letdialog umrechner konvert event_change true setze_Zahlensystem bin Zu guter Letzt zentrieren wir das Fenster auf dem Bildschirm mit Hilfe der Prozedur centerdialog aus der Bibliothek DIALOG RB setzen den Eingabefokus beim Programmstart auf das Dezimalzahlen Eingabefeld und bringen den Dialog zur Anzeige In der Ereignisbehandlungsroutine die wir wie in unserem ersten Script mit selbst definiertem Dialogfenster als eine REPEAT UNTIL Schleife definieren pr fen wir nun die 6 Ereignisse die mit oder auf dem Dialog ausgel st werden k nnen ab und rufen die entsprechenden Prozeduren auf Bei der Anderung eines Wertes in den Eingabefeldern wird jeweils die Prozedur berechne_Zielwert oder berechne_Dezimalwert je nachdem in welchem Feld man sich befindet eingegeben bei Auswahl eines Men punktes wird die Prozedur setze _Zahlensystem mit dem entsprechenden Zahlen system aufgerufen Fertig ist unser selbstg

Download Pdf Manuals

image

Related Search

Related Contents

A.O. Smith 185363-001 Water Heater User Manual  Verizon CDM8615 User's Manual  atenção - Media Center  10 ``Where Are the Missing Masses? The Sociology of  Braun AdvancePower 800 series, Plak Control User's Manual  Manual do usuário - Detector de Fumaça com Alarme      nomenclatore - newmedicaltrend  ACROLUX - PRIBANIC DENTAL  

Copyright © All rights reserved.
Failed to retrieve file