Eine Bat Datei aus dem Programm herraus aufrufen!
-
Hallo liebe Coder-Community,
ich bin gerade dabei ein Programm in C zu schreiben, dass über Netzwerk einen anderen Rechner runterfährt.
Ich habe soweit alles fertig, nur noch ein kleines Problemschen quält mich.
Das ist der Codeabschnitt:
FILE* Shutdown;
char Befehl[10];Shutdown=fopen("SD.bat","w+");
strcpy(Befehl,"shutdown -s");
fprintf(Shutdown,"%s",Befehl);
WinExec("SD.bat",SW_SHOWNORMAL);
_getch();
1. Er legt eine Bat-Datei an.
2. Er schreibt in diese Bat-Datei den Befehl rein.
3. Hier ist mein Problem! Exe Dateien führt er mit WinExec, ShellExecute usw. aus, aber er will meine erstelle Bat-Datei nicht ausführen :(!Bitte um Hilfe!
THX
-
mit shellexecute müsste es eigentlich funktionieren, es ist ja auch möglich damit urls aufzurufen.
P.S. warum nimmst du nicht system()?
-
Wieso schließt du die Datei nicht bevor du sie ausführst? So weit ich mich erinnern kann, werden die Daten noch nicht beim Aufruf von fprintf wirklich in die Datei geschrieben, sondern erst nachdem der Puffer voll ist, sie geschlossen wird oder flush aufgerufen wird. Kann aber gut sein, dass ich mich hier täusche, meine C-Kenntnisse sind nicht die besten :).
-
auf heden fall wäre es vorteilhaft sie vorher zu schliessen
-
Nimm CreateProcess, das führt auch Batch-Dateien aus (lies die Remarks):
-
So, danke, ich habe nun mein Programm fertig, ich kann jetzt per Remote PC einen anderen ganz einfach herrunterfahren!