C++, Funktionen zum Programm starten

Crash Kid

Erfahrenes Mitglied
Hallo,

ich arbeite gerade an einem art "Programm-Verwaltungsprogramm". Und dazu muss ich von meinem Programm aus, andere Programme starten. Klappt auch, und habe dabei keine Probleme. Nur habe ich festgestellt, dass es da eine ganze Reihe von Funktionen gibt, die man verwenden kann.

1. CreateProcess()
2. ShellExecute()
3. WinExec()

Nun meine eigentliche Frage, welche Funktion ist am besten um andere Programme zu starten und welche nicht? Worin liegt genau der Unterschied dieser Funktionen.

Danke schon mal für alle Antworten

grüße
 
Hi

das sind noch nicht alle.
system...

Zu den dreien:

WinExec ist aus der 16bit-Zeit. Veraltet.
Wird in zukünftigen Windowsversionen eventuell nicht mehr existieren.

ShellExecute hab ich selbst noch nie verwendet, laut MSDN ist es COM-Zeug.
Also nicht so einfach aufrufbar wie die anderen.

CreateProcess: Hat ca. alles, was man je an Parametern brauchen kann...
wenn man keine speziellen Einstellungen braucht, ist der Aufruf eben mit einigen 0ern voll und schaut dadurch etwas lang aus...das ist aber auch schon alles, was es zum Aussetzen gibt.

Ich empfehle CreateProcess.

Gruß
 
Stimmt,

system() gibt es auch noch, wobei da immer ein Konsolen-Fenster kommt. Ist nicht mehr so schön, wenn man WinAPI programmiert.

Momentan verwende ich immer die ShellExecute-Funkion, die ist nicht wirklich schwer zu handhaben und es klappt auch super.

Dann werde ich mir mal CreateProcess genauer anschauen.

Vielen Dank
 
ShellExecute hab ich selbst noch nie verwendet, laut MSDN ist es COM-Zeug.
Also nicht so einfach aufrufbar wie die anderen.
Also von der Verwendung ist es einfacher als CreateProcess aber natürlich nicht so mächtig. Ein Vorteil: Man kann damit auch Datendateien aufrufen. Sofern die Dateiendung im System registriert und mit einer Anwendung verknüpft ist wird dann automatisch diese Anwendung gestartet.

Gruß
MCoder
 
Zurück