Wie kann ich ein externes Programm in C ausführen? Zum Beispiel Anwendungsprogramme wie ein browser
, word
, Notepad
usw. Wie kann ich auch eine bestimmte Größe des Fensters des externen Anwendungsprogramms einstellen? Zum Beispiel eine Fenstergröße von 300 X 300
pixels.
Der Standardweg ist system
- funktioniert praktisch überall, gibt Ihnen aber keine Kontrolle darüber, wie der untergeordnete Prozess abläuft.
In aufsteigender Reihenfolge der Steuerung (und Komplexität) stellt Windows zur Verfügung: WinExec
, ShellExecute
, ShellExecuteEx
und CreateProcess
. Mit CreateProcess übergeben Sie eine STARTUPINFO
oder STARTUPINFOEX
Struktur. In beiden Fällen können Sie die Startposition und / oder die Größe für das untergeordnete Fenster angeben (obwohl der untergeordnete Prozess sein Fenster verschieben und / oder seine Größe ändern kann, bevor es überhaupt sichtbar ist).
Vielleicht möchten Sie auch Boost Process
in Erwägung ziehen, was nicht als offizieller Bestandteil von Boost akzeptiert wird, bietet jedoch ein wenig mehr Kontrolle als system
und bleibt dennoch einigermaßen portabel für eine große Anzahl der am weitesten verbreiteten Systeme (einschließlich Windows und allem, was vernünftigerweise POSIX-ähnlich ist, wie Linux oder OS X).
Sie führen ein externes Programm aus, indem Sie das System von der C-Standardbibliothek oder von Win32 CreateProcess Funktion.
Um die Größe des Hauptfensters einer von Ihnen erstellten Anwendung zu ändern. Starten Sie zuerst den Prozess mit CreateWindow. Dann verwenden Sie EnumThreadWindows mit dem Handle von CreateProcess, um das Haupt zu finden Fenster dieses Prozesses. Schließlich können Sie MoveWindow mit diesem Punkt aufrufen, um den Größe und Position.
Um ein externes Programm auszuführen, verwenden Sie am besten system
. Es gibt andere Optionen (verwenden Sie die Suche).
Um die Fenstergröße festzulegen, müssen Sie mit Ihrem Fenstermanager interagieren und ihn darum bitten. Ich weiß nicht, ob das für Sie möglich ist (Windows hat einen "start" Befehl, den Sie möglicherweise hilfreich finden, wenn Sie verwenden dieses Betriebssystem).
Sie können auch _popen <überprüfen / a> ( stdio.h ) nur für Konsolenanwendungen.
Informationen zum Erstellen einer Windows-Anwendung, die Eingabe und Ausgabe umleitet, finden Sie unter Erstellen eines untergeordneten Prozesses mit umgeleiteten Eingaben und Ausgaben im Windows SDK.