EXE, BAT Datei in C öffnen

n00oob

Grünschnabel
Hallo!
Ich hab eine Frage an euch:
Gibt es einen Befehl in C, um ein Programm (Batch, exe) zu öffnen und das C Programm zu beenden? Können auch 2 Befehle sein (öffenen von bat o. exe, schliessen von C-Prog.
Hier der Quellcode:

Code:
#include <stdio.h>
#include <stdlib.h>
void main()
{
char auswahl[2];
int zahl;
printf("1 Prog1\n");
printf("2 Prog2\n");
printf("3 Prog3\n");
printf("4 Prog4\n");
printf("5 Prog5\n");
printf("Bitte treffen Sie eine Auswahl!");
gets(auswahl);
zahl = atoi(auswahl);
if (zahl == 1)
{
Prog1 öffnen;
}
else if (zahl == 2)
{
Prog2 öffnen;
}
else if (zahl == 3)
{
Prog3 öffnen;
}
else if (zahl == 4)
{
Prog4 öffnen;
}
else if (zahl == 5)
{
Prog5 starten;
}
}


Vielen Dank!
 
Zuletzt bearbeitet:
Im Moment fällt mir nur System (aus der Unit stdlib) ein:rolleyes:
Aber wenn auch WinAPI sein darf: ShellExecute
Ist zwar ein bissl schwieriger aber auch besser:
Code:
ShellExecute(0, 0, PfadZurExe, Parameter, Verzeichnis, SW_SHOW);
 
Hier Voll:( : (ich hab die exes prog1... gennant und system verwendet)
(!)
Code:
#include <stdio.h>
#include <stdlib.h>
void main()
{
char auswahl[2];
int zahl;
printf("1 Prog1\n");
printf("2 Prog2\n");
printf("3 Prog3\n");
printf("4 Prog4\n");
printf("5 Prog5\n");
printf("Bitte treffen Sie eine Auswahl!");
gets(auswahl);
zahl = atoi(auswahl);
switch(zahl)
{
case 1: system("Prog1.exe");break;
case 2: system("Prog2.exe");break;
case 3: system("Prog3.exe");break;
case 4: system("Prog4.exe");break;
case 5: system("Prog5.exe");break;
default: printf("Du kannst wohl nicht lesen! Geh in die Schule!\n");
}
(!)
 
Viiiiiiiiiiieeeeeeeeeeeelllllleeeeeeeeeeennnnn Dank!
Nur noch eine Frage: Was ist system? Ist das der Pfad? Wenn ja, wäre diese Form richtig:
C:\Ordner\blabla.exe ?
Also so:
case 1: C:\Ordner\blabla.exe("Prog1.exe");break;
 
Zuletzt bearbeitet:
Tut mir leid das die Antwort so spät, bei mir ist mein Netz zusammengebrochen...
system ist die Methode. Also nicht so:
case 1: C:\Ordner\blabla.exe("Prog1.exe");break;
Sondern so:
case 1: system("c:\\ordner\\blabla.exe");break;
In C++ müssen in strings die (einfachen) backslashs(\) durch doppele(\\) ersetzen
 
ja es geht!
mit
system("");
kann man alles was man auch in einer Einfachen Eingabeaufforderung kann!
Das wäre dann so:
system("start Prog.exe");

PS: Mann kann das aufrufen von Batch dateien sparfen indem man sie alle in das Programm integriert also:
system("@ECHO OFF");
system("@del ....");

mfg
Kaiser206
 
moin


Oder du machst es vernümpftig und nimmst statt system, WinWxwc oder ShelExecuteEx oder CreateProcess.

Und welchen Grund gibt es Batch-Befehle in C/C++ einzubauen?


mfg
umbrasaxum
 

Neue Beiträge

Zurück