Hallo zusammen,
Das Aufteilen von größeren Applikationen auf mehrere VBS-Dateien ist durchaus üblich und sinnvoll. Es erhöht die Lesbarkeit verringert den Wartungsaufwand und strukturiert die Script-Applikation. Durch das Aufteilen können VBS-Funktionsbibliotheken erstellt werden, die in mehreren Applikationen verwendet werden können.
Prinzipiell bestehen zwei Möglichkeiten aus einem Haupt-Script eine Funktion aus einer anderen Script-Datei aufzurufen: über ScriptStart und über ScriptInclude.
Verwendet immer ScriptInclude! Der Funktionsaufruf erfolgt über den Funktionsnamen und kann Parameter enthalten. Damit solche Funktionen nur aus anderen Scripten aufrufbar sind, könnt ihr diese Funktionsbibliotheken mit SubSequence kennzeichnen.
Begründung: Bei ScriptStart ist mehr Verwaltungsarbeit notwendig, da quasi immer eine neue Script-Engine gestartet wird. In dieser Script-Engine wird die Funktion dann ausgeführt. Der zusätzliche Aufwand geht zu Lasten der Performance.
Im angehängten Beispiel wird nur die Zeitdauer für den Aufruf einer Funktion gemessen - dh. die Funktionen selbst sind leer. In der ersten Variante wird der Funktionsaufruf mittels ScriptStart getestet; die zweite zeigt den ScriptInclude. Um der Vergleich abzurunden wir im Hauptscript auch eine leere Funktion definiert und als dritte Variante getestet. Zum Testen ladet die Datei ScriptStartTest_Main.VBS in den SCRIPT-Editor (die beiden anderen Dateien sollten nicht geladen sein) und startet das Script. Die gemessenen Zeiten werden in den Logfile geschrieben.
Ihr könnt erkennen, dass selbst wenn die Anzahl der Schleifendurchläufe (Variable iMaxLoop ändern) 100 beträgt, die Funktionsaufrufe über ScriptInclude und der direkte Aufruf aus dem Hauptscript keine messbaren Zeiten ergeben. ScriptStart hingegen - je nach PC - bei etwa 10 Sekunden liegt.
Vorteile bei ScriptInclude:
Nutzung von Übergabeparametern
Nutzung von Rückgabewerten
Debuggen von Aufrufen in ein anderes Script
Nutzung von Namensbereichen
Nutzung von Objekten, Variablen eines anderen Scripts
Sinnvoller Einsatz von ScriptStart:
Start eines Scripts als Programmparameter
Belegung von Menüs, Buttons und anderen Controls zum Starten von Scripten
Aufruf von Scripten über OLE
Carpe DIAdem
Script.zip (Größe: 2,32 KB / Downloads: 335)