Programm starten oder Rechner mit C runterfahren

Hallo erstmal,
folgendes Problem:

Ich möchte ein Programm in C schreiben, dass meinen rechner nach einer gewissen Zeitspanne, die ich vorher eintippe, runterfahren oder nach einer zeit ein Programm starten…
Ich weiß allerdings nicht das/die Komando(s) für Rechner runterfahren oder Programm starten. Ich habe mich schon in anderen Foren erkundet. Da stand einfach.

#include
int main()
{
system(„shutdown“);
return 0;
}

Aber ich habe keine system.h
Also gibt es noch andere Möglichekeiten meinem Rechner zu sagen, dass er sich runter fahren soll?
Ich benutze den Compiler Dev-C++.

Hallo erstmal,

#include
int main()
{
system(„shutdown“);
return 0;
}

Aber ich habe keine system.h

Aus der Dev-C+±Faq:
http://www.bloodshed.net/faq.html#2

 #include 
 int main()
 {
 system(".....");
 return 0;
 }

Also gibt es noch andere Möglichekeiten meinem Rechner zu
sagen, dass er sich runter fahren soll?
Ich benutze den Compiler Dev-C++.

In XP: C:\Windows\ System32\Shutdown.exe

Grüße

CMБ

Heißt das jetzt, dass ich da wo … steht mein befehl in diesem Fall shutdown eintippen muss?

Und wie starte ich ein Programm mit C?

und wie kann ich voher die zeit abfragen so?

#include
#include

int main()
{
int time;
printf(„Zeit: „);
scanf(“%d“, &time);
sleep(time) /*irgendwie so ??? keine ahnung wie mach ich das, dass er sich auf meine zeit bezieht*/
system(„shutdown“);
return 0;
}

Hallo,

Heißt das jetzt, dass ich da wo … steht mein befehl in
diesem Fall shutdown eintippen muss?

Oder den korrekten Pfad, wenn es so
nicht gefunden wird.

 char befehl[] = "c:\\windows\\System32\\Shutdown.exe -s -f";
 char kommando[512];

 if( (sekunden=eingabe\_sekunden()) \> 0 )
 sprintf(kommando, "%s -t %02d", befehl, sekunden);
 else
 sprintf(kommando, "%s -t 0", befehl);

 system( kommando );

Ach so, die Bedeutung der shutdown-Parameter:
„Shutdown-Parameter“ / „Bedeutung“

 -r Neustart
 -s Herunterfahren
 -t Zeit in Sekunden (default ist 30 Sek.)
 -f alle offenen Programme werden beendet

Und wie starte ich ein Programm mit C?
und wie kann ich voher die zeit abfragen so?

so ähnlich …

 int eingabe\_sekunden()
 {
 int sekunden = 0;
 printf("Sekunden eingeben oder was: ");
 fflush(stdout);
 scanf("%d", &sekunden);
 return sekunden;
 }

Grüße

CMБ

Danke das hat sehr gut geholfen

allerdings jetzt noch eine frage wie mache ich das, dass ich
eine datei kopieren oder löschen kann mit c ?

Hallo,

schaust dui genau ein Thead unterhalb.
Zum loeschen gibt es den Kill-Befehl.

Taschau
Peter

Danke das hat sehr gut geholfen

allerdings jetzt noch eine frage wie mache ich das, dass ich
eine datei kopieren oder löschen kann mit c ?

  1. Wie genau sind funktiniert der Kill-Befehl?
    kill(pfad);
    oder wie

  2. und warum funktioniert das nicht ???

Ich wollte ein Programm schreiben, dass World of WarCraft startet

#include
#include

int main()
{
char befehl[] = „c:\Spiele\World of Warcraft\WoW.exe“;
system( befehl );
return 0;
}

wenn ich den pfad von der Shutdown.exe da angebe dann startet
er die datei, aber die WOW.EXE nicht warum nicht???

Hallo !

Eine Datei löschen geht am einfachsten mit remove().

mfg
Christof

Hallo

  1. Wie genau sind funktiniert der Kill-Befehl?
    kill(pfad);
    oder wie
 char name[] = "brauchichnicht.txt";
 unlink(name);

(http://www.delorie.com/gnu/docs/glibc/libc_280.html)

  1. und warum funktioniert das nicht ???
    Ich wollte ein Programm schreiben, dass World of WarCraft
    startet

#include
#include

int main()
{
char befehl[] = „c:\Spiele\World of Warcraft\WoW.exe“;
system( befehl );
return 0;
}

Weil Dein Befehl für Windows so

 c:\Spiele\World of Warcraft\WoW.exe

aussieht, Windows versucht also
die Date World.exe zu finden und zu starten.

Windows benötigt so einen Befehl in Anführungszeichen
(wegen Leerzeichen):

**"** c:\Spiele\World of Warcraft\WoW.exe **"**

dann klappts auch:

 #include 
 #include 

 int main()
{
 char befehl[] = " **\"** c:\Spiele\World of Warcraft\WoW.exe **\"**";
 system( befehl );
 return 0;
}

Also bei Leerzeichen extra „“ mit " einimpfen :wink:

Grüße

CMБ

Okay danke funktioniert alles aber

wenn ich eine date in einem anderen Verzeichnis löschen möchte was mach ich dann?

Oder wenn ich einen ganzen ordner löschen möchte

char name[]=„pfad“;
unlink(name);

funktioniert nicht…

Mir ist noch eine frage eingefallen…

Wie kann ich in meine Exe Datei ein Icon importieren ???
dieses default icon stinkt ^^

Hallo,

also das mit dem Icon kannst du wohl vergessen. Bei den alten 16Bit Programmen ging das nich mit einem Resouceeditor (z.B. WhiteWater Resource Kit oder VC1.5) aber bei 32Bit Programmen muss man dazu das Programm neu kompilieren.

Tschau
Peter

Mir ist noch eine frage eingefallen…

Wie kann ich in meine Exe Datei ein Icon importieren ???
dieses default icon stinkt ^^

muss man dazu das Programm neu kompilieren.

Wie meinst du das???
Ich meine es gibt eigentlich nurnoch exe Datein mit icon.
Das muss doch auch jetzt noch gehen
was genau muss man denn in den quellcode reinschreiben ??
Kannst du mir das vielleicht erklären???

Also es ist folgendermassen:
Eine Exe-Datei besteht im Prinzip aus 3 Bloecken, der ausfuehrbare Code, die statischen Daten und die Resourcen( Icons, Bitmaps, Dialogebeschreibungen, Statische Texte, Menues).
In den 16Bit-Exes waren diese Resourcen in einem Block am Ende der Exe-Datei abgestellt, und konnten nachtraeglich geaendert werden.
Dies ist nun bei 32Bit Programmen nicht mehr der Fall, da einige Erweiterungen wie Unicode-Strings, mulitlinguale Dialoge etc. hinzugekommen sind. Deshalb kann man die Resourcen nach dem Compilieren nicht mehr einfach „patchen“. Auserdem ist das Icon nicht der EXE-Datei zugewiesen, sondern dem Femster das angezeigt wird; oeffent ein Programm mehrere Femster, dann ist es moeglich jedem Fenster ein anderes Icon zuzuweisen.

Man kann lediglich ueber die Dateieigenschaften der Programm-Datei im System ein neues Icon zuweisen, das heist aber nur, das dieses Icon im Startmenu bzw. auf dem Desktop angezeigt wird.

Hope this helps
Peter

Wie meinst du das???
Ich meine es gibt eigentlich nurnoch exe Datein mit icon.
Das muss doch auch jetzt noch gehen
was genau muss man denn in den quellcode reinschreiben ??
Kannst du mir das vielleicht erklären???

Mit diesem Tool kannst du alle resourcen in einer .exe oder .dll auslesen und ändern: http://www.angusj.com/resourcehacker/

Manfred