dynamische Links
Hallo liebe Community,
ich habe eine Frage bezüglich dynamischen Links in VB. Ich habe mich noch gar nicht mit VB beschäftigt und bin ein totaler Neuling.
Zur Erläuterung meines Problems. Ich habe auf meinem USB-Stick Xampp installiert und habe dies dann in PortableApps integriert. Damit ich nicht alle *.exe Dateien sehe, habe ich mir eine Batch Datei geschrieben die den Apache und MySQL Server als Dienst startet. Dies funktioniert auch soweit. Nun wollte ich die command windows nicht dauerhaft angezeigt haben und bin da wohl an die Grenzen der Kommandozeile unter Windows gestoßen. Mir wurde mitgeteilt, dass ich dies mit VB lösen kann und habe mich an die Arbeit gemacht und habe folgenden Code geschrieben:
set WshShell = WScript.CreateObject("WScript.Shell")
Laufwerkspfad = WshShell.ExpandEnvironmentStrings("%systemdrive%")
Wscript.Echo Laufwerkspfad
Dieses Script gibt nun den SystemRoot wieder, ich würde dort aber gern den Pfad meines USB sticks haben. Unter der Kommandozeile ist dies relativ leicht mit %CD% zu lösen. So erhält man den Pfad des Laufwerks auf dem die Datei liegt. Gibt es eine ähnlich leichte Methode für VB den Pfad der Datei herauszubekommen und danach auch zu verwenden?
Mein momentanes Scripts ist:
MySQL_apache_start.bat --> konvertiert zu .exe
start %CD%PortableApps\Xampp\xampplite\mysql_start.bat
start %CD%PortableApps\Xampp\xampplite\apache_start.bat
Danke schon einmal im voraus für die Hilfe.
ich habe eine Frage bezüglich dynamischen Links in VB. Ich habe mich noch gar nicht mit VB beschäftigt und bin ein totaler Neuling.
Zur Erläuterung meines Problems. Ich habe auf meinem USB-Stick Xampp installiert und habe dies dann in PortableApps integriert. Damit ich nicht alle *.exe Dateien sehe, habe ich mir eine Batch Datei geschrieben die den Apache und MySQL Server als Dienst startet. Dies funktioniert auch soweit. Nun wollte ich die command windows nicht dauerhaft angezeigt haben und bin da wohl an die Grenzen der Kommandozeile unter Windows gestoßen. Mir wurde mitgeteilt, dass ich dies mit VB lösen kann und habe mich an die Arbeit gemacht und habe folgenden Code geschrieben:
set WshShell = WScript.CreateObject("WScript.Shell")
Laufwerkspfad = WshShell.ExpandEnvironmentStrings("%systemdrive%")
Wscript.Echo Laufwerkspfad
Dieses Script gibt nun den SystemRoot wieder, ich würde dort aber gern den Pfad meines USB sticks haben. Unter der Kommandozeile ist dies relativ leicht mit %CD% zu lösen. So erhält man den Pfad des Laufwerks auf dem die Datei liegt. Gibt es eine ähnlich leichte Methode für VB den Pfad der Datei herauszubekommen und danach auch zu verwenden?
Mein momentanes Scripts ist:
MySQL_apache_start.bat --> konvertiert zu .exe
start %CD%PortableApps\Xampp\xampplite\mysql_start.bat
start %CD%PortableApps\Xampp\xampplite\apache_start.bat
Danke schon einmal im voraus für die Hilfe.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 103906
Url: https://administrator.de/forum/dynamische-links-103906.html
Ausgedruckt am: 26.04.2025 um 22:04 Uhr
5 Kommentare
Neuester Kommentar
Hallo zaturo und willkommen im Forum!
Wenn Du nur das Laufwerk benötigst:
Alternativ-Variante (verwendet den Pfad des Scripts anstelle des aktiven Verzeichnisses - analog zu "%~d0" in einem Batch):
Um einen Pfad zusammenzusetzen:
Schließlich zum Starten:
Das "WshShell"-Objekt muss im Script nur einmal erzeugt werden (ist hier also nur bei der Alternativ-Variante erforderlich).
Grüße
bastla
[Edit] Obwohl für einen USB-Stick nicht unbedingt nötig: Laufwerksermittlung auf "GetDriveName"-Methode umgestellt [/Edit]
Gibt es eine ähnlich leichte Methode für VB
Set WshShell = WScript.CreateObject("WScript.Shell")
Laufwerkspfad = WshShell.CurrentDirectory
WScript.Echo Laufwerkspfad
Set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Laufwerk = fso.GetDriveName(WshShell.CurrentDirectory)
WScript.Echo Laufwerk
Set fso = CreateObject("Scripting.FileSystemObject")
Laufwerk = fso.GetDriveName(WScript.ScriptFullName)
mysql = Laufwerk & "\PortableApps\Xampp\xampplite\mysql_start.bat"
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run mysql, 0
Grüße
bastla
[Edit] Obwohl für einen USB-Stick nicht unbedingt nötig: Laufwerksermittlung auf "GetDriveName"-Methode umgestellt [/Edit]
Hallo zaturo!
Das gesamte Script könnte so aussehen:
Grüße
bastla
Das gesamte Script könnte so aussehen:
Set fso = CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
Laufwerk = fso.GetDriveName(WScript.ScriptFullName)
mysql = Laufwerk & "\PortableApps\Xampp\xampplite\mysql_start.bat"
apache = Laufwerk & "\PortableApps\Xampp\xampplite\apache_start.bat"
WshShell.Run mysql, 0
WshShell.Run apache, 0
bastla