CMD öffnen, offen halten und befehl übergeben
Hallo foglendes Problem.
Ich will aus einem VB6 Programm eine shell öffnen einen befehl schon vorgeben aber noch NICHT absenden. Sprich der User soll noch möglichkeiten zum editieren haben.
Ich habe schon was gemacht aber leider schließt sich die cmd sofort wieder wenn ich diese mit
SHELL programm,vbnormalsize
anspreche
in programm ist der String hinterlegt. Als Beispiel "echo C:\Programme\Verzeichnis\programm.exe"
Der exe kann aber noch ein oder mehrere Parameter übergeben werden, weswegen diese nicht gestaret werden soll.
Gibt es da einen Schalter den ich setzen muss oder wie mach ich das am besten?
Gruß
Sven
Ich will aus einem VB6 Programm eine shell öffnen einen befehl schon vorgeben aber noch NICHT absenden. Sprich der User soll noch möglichkeiten zum editieren haben.
Ich habe schon was gemacht aber leider schließt sich die cmd sofort wieder wenn ich diese mit
SHELL programm,vbnormalsize
anspreche
in programm ist der String hinterlegt. Als Beispiel "echo C:\Programme\Verzeichnis\programm.exe"
Der exe kann aber noch ein oder mehrere Parameter übergeben werden, weswegen diese nicht gestaret werden soll.
Gibt es da einen Schalter den ich setzen muss oder wie mach ich das am besten?
Gruß
Sven
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 78287
Url: https://administrator.de/contentid/78287
Ausgedruckt am: 24.11.2024 um 17:11 Uhr
9 Kommentare
Neuester Kommentar
Hallo SvenGuenter!
Warum nicht dem Benutzer eine InputBox anbieten und dann die vollständige Parameter-Zeile an den Batch übergeben?
Eine etwas abenteuerliche Variante könntest Du über "SendKeys" versuchen.
Wenn Du das CMD-Fenster (bis zur Ausführung eines "exit"-Befehles - egal ob durch Benutzereingabe oder per Batch) offen halten willst, dann mit "cmd /k" aufrufen - dazu kannst Du auch gleich einen (sofort auszuführenden) Befehl angeben, etwa
Grüße
bastla
Warum nicht dem Benutzer eine InputBox anbieten und dann die vollständige Parameter-Zeile an den Batch übergeben?
Eine etwas abenteuerliche Variante könntest Du über "SendKeys" versuchen.
Wenn Du das CMD-Fenster (bis zur Ausführung eines "exit"-Befehles - egal ob durch Benutzereingabe oder per Batch) offen halten willst, dann mit "cmd /k" aufrufen - dazu kannst Du auch gleich einen (sofort auszuführenden) Befehl angeben, etwa
objShell.Run "cmd /k cd /d D:\Test"
Grüße
bastla
Hallo SvenGuenter!
... wobei ich mir nicht sicher bin, dass die angestrebte Vorgangsweise nötig ist - immerhin kennt Batch ja zumindest eine Input-Möglichkeit über
Grüße
bastla
... wie übergebe ich nun an die cmd einfach nur einen befehl ohne das dieser ausgeführt wird
Abgesehen vom oben erwähnten "SendKeys" eigentlich gar nicht ...... wobei ich mir nicht sicher bin, dass die angestrebte Vorgangsweise nötig ist - immerhin kennt Batch ja zumindest eine Input-Möglichkeit über
set /p "Eingabe=Parameter angeben: "
echo Eingegeben wurde: %Eingabe%
Grüße
bastla
Hallo SvenGuenter!
Es fällt mir weiterhin schwer, die Notwendigkeit der von Dir angedachten Vorgangsweise zu erkennen. Sieh Dir vielleicht einmal den folgenden Versuch mit einem Startbatch und einem, das Programm simulierenden, weiteren Batch an - in beiden Batchdateien wird dem Benutzer die Möglichkeit gegeben, an der Konsole eine Eingabe zu tätigen, obwohl der erste Batch direkt (also ohne explizites Öffnen einer CMD-Shell) gestartet wird:
VB6
Batch "D:\Starter.cmd"
Batch "D:\Prog.cmd"
Sollte aus irgendeinem Grund das CMD-Fenster weiterhin benötigt werden, dann:
Grüße
bastla
Es fällt mir weiterhin schwer, die Notwendigkeit der von Dir angedachten Vorgangsweise zu erkennen. Sieh Dir vielleicht einmal den folgenden Versuch mit einem Startbatch und einem, das Programm simulierenden, weiteren Batch an - in beiden Batchdateien wird dem Benutzer die Möglichkeit gegeben, an der Konsole eine Eingabe zu tätigen, obwohl der erste Batch direkt (also ohne explizites Öffnen einer CMD-Shell) gestartet wird:
VB6
Private Sub btnStart_Click()
Shell "D:\Starter.cmd Param1 Param2 ""Param 3"" Param4", vbNormalFocus
End Sub
Batch "D:\Starter.cmd"
@echo off & setlocal
set /p "Zusatz=Weiterer Parameter (neben %*): "
D:\Prog.cmd %* "%Zusatz%" "und noch ein Parameter"
Batch "D:\Prog.cmd"
@echo off & setlocal
echo.
echo Prog.cmd
echo Parameter waren: %1_%2_%3_%4_%5_%6_%7_%8_%9
echo.
echo bzw ohne Anfuehrungszeichen:
echo Parameter waren: %~1_%~2_%~3_%~4_%~5_%~6_%~7_%~8_%~9
echo.
set /p "Passwort=Bitte Passwort eingeben: "
echo Eingegebens Passwort: %Passwort%
echo.
pause
Sollte aus irgendeinem Grund das CMD-Fenster weiterhin benötigt werden, dann:
Private Sub btnStart_Click()
Shell "cmd /k D:\Starter.cmd Param1 Param2 ""Param 3"" Param4", vbNormalFocus
End Sub
Grüße
bastla