Konsole im Hintergrund ausführen
-
Hallo,
ich entwickele gerade in Cli-C++ ein Fensterprogramm,
welches im Hintergrund ein Konsolen-Programm aufrufen/ausführen
soll. Bisher mache ich es über die system()-Funktion, aber es sollen
keine Konsolen-Fenster im Hintergrund "herumflackern". Gibt es ein
Funktion die das verhindert? Und weil es gerade passt: Wenn ich Cli-C++
verwende, kann man die Executable auch auf einem Computer ohne .Net ausführen?
(Ich verwende nur Funktionen zum zeichnen des Fensters,ansonsten kein .Net)0x0ERROR
-
Hab jetzt noch folgendes Problem:
Wenn ich Kommandozeilenparameter(vorerst über die Konsole)
mit angebe, kann das Programm nicht gefunden werden:private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) { String ^pfad = Application::StartupPath;; Diagnostics::Process::Start(pfad + "\\Tools\\bin\\avr-g++"); }
0x0ERROR
-
Konsole im Hintergrund (Google erstes Ergebnis)
ProcessStartInfo pinfo = new ProcessStartInfo(); pinfo.WindowStyle = ProcessWindowStyle.Hidden; pinfo.FileName = "cmd.exe"; Process.Start(pinfo);
(Musst du halt auf die C++/CLI Syntax portieren)
Wenn ich Cli-C++ verwende, kann man die Executable auch auf einem Computer ohne .Net ausführen?
Nein. Die Fenster sind auch .Net - und die ganzen managed Objekte werden von .Net verwaltet.
Wenn ich Kommandozeilenparameter(vorerst über die Konsole) mit angebe, kann das Programm nicht gefunden werden:
Das hat dann mit den Parametern nichts zu tun, der Pfad ist falsch. Und du darfst die Argumente nicht als Teil des Pfades angeben wenn du das Mit Process::Start machst.
Du musst schauen was der StartupPath ist, ich vermute der zeigt auf deinen Debug Ordner und ich weiß ja nicht wo dein zu startendes Programm liegt
-
Der obligatorische Link: http://www.c-plusplus.net/forum/263084