Supportnet Computer
Planet of Tech

Supportnet / Forum / Anwendungen(Java,C++...)

C++ Programmaufruf





Frage

Ich bin relativ neu bei C++ und möchte durch mein Programm andere aufrufen. Ich komme aber absolut nicht klar mit dem Befehl CreateProcess(). Darum wollte ich hier mal fragen ob mir jemand verständlich erklären kann, was es mit den ganzen Parametern auf sich hat? Thx

Antwort 1 von Lau

Hi Thx!
Ich habe ein ähnliches Problem, aber
irgendwie hilft uns keiner.
Schade!
Laura

Antwort 2 von Markus K.

hi,
versuchs mal hiermit:
if(WinExec((LPSTR)"Pfad und Dateiname",SW_SHOWNORMAL)<32)
{
Fehler anzeigen
}

Ist zwar eher eine alte C Funktion aber für den Aufruf eines Programms, wenn keine weitern Optionen benötigt werden,
das einfachste.

Gruß Markus

Antwort 3 von Lau

Hi Markus!
Habe noch nie etwas von dieser Funktion gehört. Ist die wirklich
aus C? Und in welcher Header-Datei finde ich sie?

Laura

Antwort 4 von semi

Es ist ein Windows API Funktion.
Siehe winbase.h bzw. windows.h, wo winbase.h "included" wird.
Die SW_* Konstanten findest Du in winuser.h

Auszug aus WinAPI Dokumentation

UINT WinExec(lpszCmdLine, fuCmdShow)

LPCSTR lpszCmdLine; /* address of command line */
UINT fuCmdShow;     /* window state of new app. */


Antwort 5 von Lau

Gracias!
Es funktioniert! :-)

Du weist nicht zufällig auch, wie man ein reines DOS-Programm, also
ein Prog, welches im DOS-Modus laufen kann, auch Prog aufrufen kann?
Die Funkt, die Du genannt hast, ist wohl logischerweise für die Win-Konsole gedacht.

Toll wäre es, wenn Du mir auch sagen kannst, wie das von DOS her
geht.

Auf alle Fälle schon einmal vielen Dank!

Laura


Antwort 6 von semi

Vermutlich mit
int execl(const char *path, const char *argv0, ...);
oder ähnlichen Funktionen aus process.h
Beispiel (nicht getestet):

#include <process.h>

int main(int argc, char **argv) {

  char *path = "c:\\wo\\auch\\immer\\";
  char *cmd  = "kill_fat.exe";
  char *arg1 = "-sofort";
  char *arg2 = "-gruendlich";

  execl(path, cmd, arg1, arg2);

  return 0;
}

Gruß,
Michael

Antwort 7 von Lau

Danke für die Antwort!

Nur, ich komme leider nicht weiter.
Mein Compiler sagt mir immer, dass argc und argv
nicht verwendet wurden.
Wo erfahre ich Näheres über diese Funktionen
in process.h?

Laura