donsimeo
Goto Top

Exe aus VB starten - Pfad mit Leerzeichen

Schön guten Tag,

also eigentlich scheint mir mein Problemchen nicht allzu schwer zu sein, aber nach langem probieren hab ich's nicht geschafft...

eine *.Exe aus Visual Basic 6 zu starten, deren Pfad Leerzeichen enthält.

Das Programm starte ich mit:

Call Shell("Pfad\Datei.exe", vbNormalFocus)

Da der Pfad aber Leerzeichen enthält, funktionierts nicht.

Ich hoffe mir kann da jemand helfen,
Grüße, Simi.

Content-ID: 61261

Url: https://administrator.de/contentid/61261

Ausgedruckt am: 25.11.2024 um 20:11 Uhr

miniversum
miniversum 13.06.2007 um 13:45:03 Uhr
Goto Top
Du brauchst ja in der cmd zum ausführen einer Programmes mit Leerzeichen im Pfad oder im Namen ein " am Anfang und Ende, also so:
"c:\Verzeichnis zum Programm\Program.exe"
Das muß beim Aufruf in VB dan auch so sein. Im VB wird ja z.B. auch bei ausgaben ein " durch "" im Sourcecode erreicht. Daher müßte es mit Folgendem Aufruf gehen:
Shell("""Pfad\Datei.exe""", vbNormalFocus)

miniversum
DonSimeo
DonSimeo 13.06.2007 um 16:39:33 Uhr
Goto Top
Ja so funktionierts, danke.

Und wie könnte ich in den Pfad eine Variable schreiben?
Also ungefähr so:

Dim winPath As String
winPath = Environ("userprofile")
Shell (winpath & "\Ordner mit Leerzeichen\Datei.exe")

Nun sind aber schon im Pfad winPath (=C:\Dokumente und Einstellungen\User) Leerzeichen die irgendwie angeben muss, aber nicht weiß wie...

So jedenfalls funktionierst nicht:

Shell (""" & winPath & """ & "Datei.exe")
miniversum
miniversum 13.06.2007 um 16:52:50 Uhr
Goto Top
Muß dan so aussehen:
Shell ("""" & winPath & "Datei.exe""")
oder ausführlicher wärs ja so:
Shell ("""" & winPath & "Datei.exe" & """")
Kannst ja mal mit ner msgbox bischen rumprobieren. da funktionierts genau so.

miniversum
DonSimeo
DonSimeo 13.06.2007 um 17:52:40 Uhr
Goto Top
Vielen Dank, das wars.

...wer ahnt denn mit so vielen Anführungsstrichen...

Schönen Abend,Simi.
bastla
bastla 13.06.2007 um 18:42:14 Uhr
Goto Top
Hallo DonSimeo!

Wenn Du die vielen Anführungszeichen nicht sooo sympathisch findest, vielleicht folgende Variante:
Shell (Chr(34) & winPath & "Datei.exe" & Chr(34))  

Grüße
bastla