Wenn ich popen benutze, um die Ausgabe eines Befehls zu erhalten, sagt dir, wird es eine Konsole ausgeben.
kann ich jedoch die Ausgabe eines Befehls ohne das Erscheinen der Konsole erhalten?
Ich verwende Visual C ++ und möchte eine Bibliothek erstellen, die die Ausgabe eines Befehls zurückgibt, z. B. dir.
Unter der Annahme von Windows (da dies die einzige Plattform ist, auf der dieses Verhalten endemisch ist):
CreatePipe () um die erforderlichen Pipes für die Kommunikation zu erstellen, und CreateProcess , um den untergeordneten Prozess zu erstellen.
%Vor%Dies sollte mehr als nur Sie auf dem Weg zu tun, was Sie erreichen möchten.
Ich musste dies für meine Vollbild-OpenGL-Windows-Anwendung lösen, konnte jedoch nicht verhindern, dass das Konsolenfenster auftauchte. Stattdessen scheint die Fokussierung nach einer kurzen Verzögerung gut genug zu funktionieren, um es nicht zu sehen.
%Vor%Update: Dies funktioniert anscheinend nicht, wenn das Programm vom Explorer gestartet wird. Es funktioniert, wenn es von Visual Studio gestartet wird.