VTOOL
Übersicht
VTool ist eine Programmcode-Komponente nach dem Component-Object-Model-Standard (COM). Genauer gesagt, handelt es sich bei VTool um einen COM-Server, also ein Laufzeitmodul, das einer anderen COM-unterstützenden Anwendung (Client) bestimmte Objekte und die damit verbundene Funktionalität anbieten kann.
VTool wurde primär für die Verwendung mit Windows Script Host und Visual Basic Script (WSH/VBS) entwickelt. Der Grund liegt einfach darin, dass diese Scripting-Umgebung vielseitig, leistungsfähig und auf allen Windows-Systemen verfügbar ist, zudem ist eben auch eine Erweiterbarkeit durch COM-Module gegeben.
In Scripts werden oft COM-Module benutzt, beispielsweise das FileSystemObject (scrrun.dll) oder die Shell-Komponente (shell32.dll). Sie machen dem Script zusätzliche Funktionen verfügbar. Das Script (bzw. allgemein der COM-Client) bedient sich dieser Komponenten, indem er eine Instanz eines der dort definierten Objekte (Klassen) erzeugt:
Set obj = CreateObject("Scripting.FileSystemObject") Set obj = obj.CreateTextFile("test.txt", True) obj.Close
In gleicher Weise können die Objekte von VTool verwendet werden, z.B.:
Set obj = CreateObject("VTool.Window") obj.Create "Textinfo-Fenster" obj.WriteLine "Beispieltext" obj.Remove
Damit dies so einfach gelingt, muss VTool – wie alle COM-Server – bei Installation einmal registriert werden (s.u.).
Objekte
VTool war eigentlich nicht als allgemeine Toolbox oder Library gedacht. Viele Objekte und Funktionen haben sich einfach aus praktischen Bedarfsfällen ergeben. So wollte ich mal in einem Script einen Registry-Wert lesen, der sich als abhängig von der Windows-Version erwies (es ging wohl um den Standard-Browser). Daher sind Versionsinformationen nun als Objekt verfügbar. Auf diese Weise hat der Umfang mit der Zeit etwas zugenommen.
Einen Hauptgegenstand bilden diverse Elemente zur Benutzer-Interaktion, die in einem Script sonst nicht zur Verfügung stünden. Beispiel:
Set obj = CreateObject("VTool.DriveList") drv = obj.Selection("e:", "Laufwerksauswahl")
WSH/VBS fehlt leider auch die Möglichkeit, API-Funktionen von Windows aufzurufen. (Diese Einschränkung wurde mit DynaLib überwunden.) Einige Objektmethoden von VTool stellen deshalb solche Aufrufe bereit, um so beispielsweise die Verarbeitung von INI-Dateien mittels Script zu unterstützen:
Set obj = CreateObject("VTool.Profile") obj.File = "test.ini" var = obj.GetValue("Area51", "Roswell")
bestimmte Systemdaten zu erhalten:
Set obj = CreateObject("VTool.System") MsgBox obj.VolumeGetGUID("C:\"), , "GUID für Laufwerk C:"
oder wie erwähnt die Windows-Version zu ermitteln:
Set obj = CreateObject("VTool.OsVersion") var = "Windows-Version: " & obj.Major & "." & obj.Minor & "." & obj.Build WScript.Echo var
Die folgende Tabelle listet alle Objekte der aktuellen Version von VTool in alphabetischer Reihenfolge auf.
Objekt | Funktionalität |
---|---|
Aux | verschiedene Hilfsfunktionen |
BinFile | binärer Lese-/Schreibzugriff auf Dateien |
CheckList | Auswahlliste (Mehrfachauswahl mit Checkboxen) |
Clipboard | Textaustausch mit der Zwischenablage |
Clock | Timer |
CWindow | Konsolenfenster für Textein-/ausgaben |
DateTime | einige Funktionen zur Systemzeit |
DriveList | Auswahlliste mit verfügbaren Laufwerken |
DTPick | Dialog zur Datums- oder Zeitauswahl |
EventLog | Aufzeichnung von Ereignissen |
File | einige Dateifunktionen |
FileSelection | Dialog zur Dateiauswahl |
List | Auswahlliste (Einzel- oder Mehrfachauswahl) |
Me | VTool-Info |
MessageBox | Windows-Mitteilungsdialog |
MInputBox | Dialog für (mehrere) Benutzereingaben |
Noise | Tonausgabe und Klangwiedergabe |
Notice | Benachrichtigungen in der Taskleiste |
OsVersion | Windows-Versionsdaten |
Profile | Lesen/Schreiben von INI-Dateien |
ProgressDialog | Shell-Dialog mit Fortschrittsanzeige |
ProgressWindow | Fenster mit Fortschrittsanzeige |
Registry | Suche nach Elementen der Windows-Registratur |
System | Zugriff auf einige Systeminformationen |
TaskDialog | Windows-Task-Dialog |
Window, Window2 | Fenster zur laufenden Textausgabe |
Die meisten Dialoge werden modal angezeigt. Die Fenster ProgressDialog, ProgressWindow, Window und Window2 sind nichtmodal und können der Anzeige von Informationen während längerer Prozesse dienen.
Die Hilfedatei VTOOL.CHM enthält ausführliche Beschreibungen.
Verwendung
Die Objekte von VTool sind einfach konstruiert und daher nicht schwierig zu verwenden. Ihre Erzeugung und abschließende Freigabe folgt dem üblichen Schema:
' Objekt wird erzeugt Set obj = CreateObject("VTool.Noise") ' Objekt (obj) wird verwendet obj.PlayFile "tada.wav" ' Objekt wird freigegeben (gelöscht) Set obj = Nothing
Natürlich sind einige Teile anspruchsvoller und verlangen eine gute Kenntnis der technischen Grundlagen und des Betriebssystems.
Lizenz/Hinweise
VTool wird als Freeware und »so wie es ist« zur Verfügung gestellt. Die Überlassung erfolgt also unentgeltlich und für beliebige Verwendungszwecke, aber auch ohne jede Gewährleistung oder Haftung. Verbesserungsvorschläge sind natürlich willkommen.
Beachten Sie bitte, dass jede Benutzung von VTool und den mitgelieferten Beispielen auf eigenes Risiko erfolgt!
Download, Installation
Die Datei vtool.zip enthält VTOOL.EXE und VTOOLC.EXE zusammen mit der Beschreibung (VTOOL_DE.CHM sowie der englischen Version VTOOL.CHM).
Versionsstand: 3.6.0, Aug. 2024 (vtool.exe), 2.8.0, Jan. 2020 (vtoolc.exe).
Zur Installation genügt es, den Inhalt der Archivdatei in ein Verzeichnis Ihrer Wahl zu entpacken.
Als COM-Modul muss VTool dann einmal registriert werden. Dies ist ein ganz einfacher Vorgang und in der Hilfedatei beschrieben. Beachten Sie bitte auch die übrigen Hinweise der Programmdokumentation.
Die Datei samples.zip (Okt. 2020) enthält einige VBS-Beispiele, die die Auswertung von Windows-Versionsdaten, den Shell-Dialog zur Verzeichnisauswahl, Dateienvergleich sowie die Änderung von Dateizeiten zum Gegenstand haben.
VTool erfordert die VB6-Laufzeitdateien, die normalerweise in Windows enthalten, zudem aber auch als Download verfügbar sind.