start std::string (batch code) in new console window
-
hallo, ich arbeite gerade an einem editor für batch-dateien (oder bin besser gesagt gestern damit angefangen
)
naja, jedenfalls will ich, dass man den bereits geschriebenen code ähnlich wie bei visual studio über einen debug-button starten kann.Das Problem liegt darin, dass ich nicht weiß wie ich den batch-code (als std::string gespeichert) möglichst ohne zwischenspeicherung des codes in externen dateien in einem neuen konsolenfenster ausführen kann.
also nach dem prinzip "buttondruck"->"code wird in string gespeichert"->"öffne neues konsolenfenster und starte den code"
Ist das möglich? ..und wenn ja, wie? bitte um schnelle Hilfe
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Mit CreateProcess() oder evtl. auch einfach system() eine neue Instanz von cmd.exe starten und den Code übergeben...
-
ok, ich probiere heute abend mal ein wenig mit createprocess rum und melde mich dann wieder
-
WriteConsole() ?
http://msdn.microsoft.com/en-us/library/windows/desktop/ms687401%28v=vs.85%29.aspx
Lies dich am besten mal hier ein:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682073%28v=vs.85%29.aspx
-
hat einer vieleicht ein beispiel? ich wäre euch echt dankbar, bin gerade irgentwie am verzweifeln
system()
ja, genau das, aber halt in einem neuen konsolenfenster..
WriteConsole()
ich hab keine ahnung, wie ich den befehl einbauen soll, und bin mir auch nicht sicher ob er genau das macht, was ich will.
-
Wie gesagt, CreateProcess()...
-
aber wie benutze ich das? ich brauch irgentwie noch einen kleinen gedankenanstoß
irgentwie habe ich gerade nämlich keine ahnung wie ich den befehl benutzen soll und google'n hat mich nur noch mehr verwirt
-
Es ist eine ganz normale Funktion, die du eben aufrufst. Was sie genau tut und wie sie genau zu verwenden ist, steht in der oben verlinkten Dokumentation. Wo genau liegt denn dein Problem?
-
Du kannst statt system("Befehl") system("cmd /k Befehl") benutzen. Das startet eine neue cmd und führt den Befehl darin aus.
Dein Problem wird eher sein, dass Befehle wie "cd Ordner" zwar funktionieren, aber nach Schließen der Konsole weg sind, sodass du eigenlich alles in einer Konsole machen solltest.
-
ok, danke
das hat mir geholfen