start.exe
|
start.exe: Eine kleine, selbstgeschriebene VisualBasic-Anwendung, die durch ein eigene ini-Datei konfiguriert werden kann, um andere Programme zu starten.
Wie es anfing:
Ursprünglich wurde das Tool dazu entwickelt, um eine auf einem Netzwerk-Fileserver liegende Access-Datenbankanwendung auf einheitliche Weise startbar zu machen. Normalerweise hätte sich jeder Benutzer z.B. auf seinem Desktop einen Link erstellen müssen, der dann spezielle Startkommandos für den Aufruf des Access-Runtime-Modules und der dazugehörigen Parameter enthält. Darin sah ich eine potentielle Fehlerquelle, zumal ich eine Dokumentation hätte erstellen müssen. Außerdem wäre irgendeine arme Sau bei dem Kunden mit ständigen Anrufen belästigt worden, wie denn die Anwendung aufzurufen sei etc.
Das Ganze sollte so einfach wie möglich ablaufen.
Die Anwender legen sich jeweils eine Verknüpfung zu start.exe im Projekt-Verzeichnis how2 an.
Völlig unabhängig von wo aus die start.exe-Anwendung gestartet wurde, liest sich das Tool ein paar Anweisungen aus
der start.ini ein und bastelt auf dynamische Weise einen korrekten Aufruf-String für das zu startende
Microsoft-Access-Runtime-Modul zusammen.
So klappte dann das Starten der Access-Anwendung auch wunderbar, unabhängig davon, unter welchem Laufwerksbuchstaben die
jeweiligen Anwender das entsprechende Server-Laufwerk in ihr Windows eingebunden hatten.
Vereinzelt gab es noch etwas Ärger mit superverschachtelten Verzeichnisstrukturen und so tollen Verzeichnisnamen wie
"Meine spannendsten Projektverzeichnisse~88", aber dem konnte mit pädagogischen Maßnahmen begegnet werden.
Wo das Problem liegt:
Letztendlich liegt die Problematik, der das Tool entgegentritt, darin, daß die Typen von Microsoft schlicht und ergreifend unfähig sind, innerhalb ihrer selbst entwickelten Anwendungen auf ihren selbst entwickelten Dateisystemen Bezüge nach einem Verfahren herzustellen, daß man "relative Verweise" nennt.Wie es weiterging:
Im alltäglichen Bürobetrieb im Umgang mit verschiedenen Anwendungen kommt es aus meiner Sicht oft vor, daß in bestimmten Kontexten Programme mit einem bestimmten Dokument oder bestimmten Benutzereingaben gestartet werden müssen und eben diese regelmäßig wiederkehrenden Eingaben ziemlich lästig sind.Was es alles kann:
Wer dem Tool mittels eines Kommandozeilen-Befehles ein "?" als Parameter übergibt, erfährt, daß auch die auszuwertende Konfigurationsdatei angegeben werden kann.
Die eigentliche Ansteuerung des Tools erfolgt durch die Einträge der ini-Datei.
Als Beispiel hier ein Link zu einer start.ini-Beispieldatei.
Die Datei ist in Englisch kommentiert, deswegen gebe ich hier nur eine grobe Übersicht über vorhandene Features.
Allgemein:
Grundsätzlich wird die Angabe eines Wertes als Aktivierung eines Features interpretiert.
Die Deaktivierung eines Features erfolgt über das Entfernen des Wertes oder durch Voranstellen eines ";" am Zeilenanfang.
Optionen:
Bei Bedarf kann eine Debug-Meldung ausgegeben, die Zeit, wie lange sich das Tool im Vordergrund aufhält oder gar auf einen
Tastendruck warten muß sowie eine Icon- wie auch eine große Bilddatei angegeben werden.
Applikations-bezogene Angaben:
erlauben es, festzulegen, ob aktuelles Laufwerk und Pfad im benutzten Betriebssystem auf den Ort gesetzt werden, in dem
das Tool liegt, sowie Pfadangabe und Name der auszuführenden Datei und in welcher Größe das Fenster der zu startenden
Anwendung dargestellt werden soll.
Durch die Angabe eines Teiles des Fenstertiteltextes der Zielanwendung kann das Tool auch direkt zu der beabsichtigten
Anwendung wechseln, wenn diese bereits geöffnet sein sollte. Durch Nutzen dieses Features dauert der Start nur solange,
bis die Anwendung wirklich aktiv ist (das kann bei einer großen Anwendung beim ersten Mal recht lange dauern und geht
danach wegen des Cache´-Speichers von Hard- und Software u.U. sehr fix). Ein Timeout-Wert gibt an, wie lange das Tool auf
den Start der Zielanwendung warten soll. Allerdings habe ich schon mal ein Windows98-System gesehen, daß bei diesem Feature
doch glatt den Dienst verweigern wollte.
Als manchmal sehr hilfreiches Schmankerl können nach dem Start einer Anwendung in 2 Phasen Tastaturanschläge gesendet
werden, die auch künstlich verlangsamt werden können, wenn die Zielanwendung sich beim Empfang der automatisierten
Anschläge "verschluckt".
Zur Dokumentation der Syntax, mittels der die automatisierten Tastaturanschläge anzugeben sind (typisch für Visual Basic
und auch Visual Basic for Applications, wie es z.B. in den Microsoft Office-Programmen Word, Excel, Access etc. enthalten
ist), ist dem
download
eine Textdatei
sendkeys.txt
beigelegt.
Microsoft Access:
Hierin lag die urspüngliche Aufgabe des Utilities, um Befehlszeilen-Kommandos zum
Start einer Access-Runtime-Anwendung dynamisch zusammenzubauen und die Beschränkung dieses Runtime-Modules, nur 181 Zeichen
entgegenzunehmen, möglichst effektiv auszunutzen.
Ab der Version 3.1 kann eine start.exe verschiedene ini-Dateien, deren Namen als Parameter übergeben wurden, auslesen, oder auch gleich vollends an die Stelle einer Windows-Verknüpfung treten.
Gerade bei Bosch-Rexroth kam es immer wieder zu Problemen, wenn z.B Access-Datenbankanwendungen per Windows-Verknüpfungen
(Links) gestartet wurden, aber diverse Standorte das Laufwerk, auf dem die Verknüpfungen liegen, mittels verschiedener
Laufwerksbuchstaben einbinden. Da relative Referenzierung für Microsoft selbst im Jahre 2005 weitgehend unbekannt ist,
stoßen wir hier immer wieder auf ärgerliche Probleme.
Gruß an die Programmiererfraktion aus Redmond, Seattle: Schaut Euch doch mal an, wie man sowas in den 70ern unter UNIX oder
in den 80ern sogar unter MS-DOS hingekriegt hat. Ohne relative Referenzierung von Dateien und Verzeichnissen würde es
Webseiten kaum geben können.
Im vorliegenden Falle wurden alle Windows-Verknüpfungen durch Kopien einer 3.1-Version von start.exe ersetzt.
Beim Start einer derart umbenannten Anwendung (ohne jegliche Parameter) sucht start.exe, ob es in einem Unterverzeichnis
"start" eine namensgleiche ini-Datei findet und liest diese dann aus. Laufwerksbuchstaben werden client-bezogen ermittelt
und alle erforderlichen Angaben zusammengebaut.
Was leider dazu gehört:
Verdutzt mußte ich bei einem privaten Einsatz feststellen, daß das Tool beim Start eine fehlende dll-Datei namens "msvbvm60.dll" anmeckerte.Download: