Wie kann ich ein externes Programm in C ausführen?

8

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.

    
JavaX 11.03.2011, 21:35
quelle

6 Antworten

14

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).

    
Jerry Coffin 11.03.2011 21:43
quelle
2

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.

    
Judge Maygarden 11.03.2011 21:41
quelle
2

Sie können die Systemfunktion zu diesem Zweck wie

verwenden %Vor%

Dies wird in der Eingabeaufforderung ausgeführt.

Aber wenn Sie winapi verwenden möchten, ist die CreateProcess () -Funktion am besten Ссылка

    
Tayyab 11.03.2011 21:44
quelle
0

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).

    
pmg 11.03.2011 21:42
quelle
0

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.

    
karlphillip 11.03.2011 21:50
quelle
0

Verwenden Sie niemals system () unter Windows (verboten) Verwende die Shell-API

    
fred 13.03.2011 10:49
quelle

Tags und Links