WinFuture-Forum.de: [c] Programm Zum Zeitversetzten Herunterfahren Von Windows Xp - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

[c] Programm Zum Zeitversetzten Herunterfahren Von Windows Xp


#1 _Timo1982_

  • Gruppe: Gäste

geschrieben 12. September 2007 - 10:58

Hier ein kleines Programm von mir zum zeitversetzten Herunterfahren von Windows XP. Es ist in C geschrieben. Ich weiß, C ist uncool, weil kein klicki-bunti ;), aber ich habe eben jeden Tag mit C zu tun und mir gefällts.

UPDATE 26.9.07: Nun doch eine Gültigkeitsabfrage eigebaut. Reine Texteingaben werden zurückgeworfen, sowie Eingaben größer als 43200 Minuten = 1 Monat. Kleine Ungereimtheiten sind noch da -> Bekannte Probleme
*Quellcode aktualisiert
*Neueste Version in den Anhang hochgeladen

Sinn des Programmes:
Wer kennt das nicht? Abends will man zum Einschlafen noch ne Runde was am Lappi gucken. Aber wer macht mitten in der Nacht den Rechner aus ? Es gibt dafür viele, sehr viele Programme. Aber alle hatten Sachen, die mich stören. Zum einen muß man sie immer installieren, zum anderen haben sie zu viele (sinnlose) Funktionen und eine GUI, die man nicht unbedingt braucht. Dann gibt es noch die Möglichkeit es direkt in der Console (etwas umständlich) über die shutdown.exe zu machen.
Mein Programm ist eigentlich nichts weiter als eine Eingabemaske für die windowseigene shutdown.exe.Es ist nur eine Datei "shut-x.exe" und Bedarf keiner Installation. Nach dem Programmstart gibt man einfach die Zeit bis zum Shutdown ein. Danach wird einem nur noch die Restzeit angezeigt. Ist diese abgelaufen, fährt der Rechner runter. Zum Abrechen des Programmes muß man es einfach nur schließen ;)

Bekannte Probleme:
Bei der Eingabe der Zeit kann es sein, wenn man "88gg" oder ähnliches eingibt, dass das Programm nur die 88 sieht und normal fortfährt.

Funktion unter Win2000:
Kopiert man die shutdown.exe (wo bekommt man die bloß her ;) ) in "Windows\system32" kann das Programm auch unter Win2000 benutzt werden.

Zu dem Programm und Quellcode:
Ich habe alles selber geschrieben und nichts aus anderen Projekten kopiert. Was mit dem hier veröffentlichten Quellcode gemacht wird, ist mir egal. So komplex ist er nich und viel Arbeit war er auch nicht. Ihr könnt ihn benutzen, verändern und was ihr sonst noch so damit machen wollt. Aber kopiert ihn nicht zu 100% und sagt es sei eure eigene Arbeit! Danke.
Das Programm wurde von mir auf mehreren Rechnern getestet. Die angehängte Datei enthält genau den hier abgebildeten Quellcode. Es sind keine Viren oder ähnliches von mir in die exe geschrieben worden. (Misstrauische Leute können diese dennoch gerne scannen)

#include <stdio.h>
#include <stdlib.h>
// Programm zum zeitversetzten Herunterfahren von Windows XP
int main(void)			 //Programmstart
{
  double zeit = 0;		 // Zeit bis zum Shutdown
  int rest = 0;			// Restzeit bis zum Shutdown (zeit - i)
  int i = 0;			   // Anzahl der Schleifendurchläufe 
						   // (1 Durchlauf pro Minute)
  int eingabeok = 0;	   // Schalter wird bei richtiger Eingabe 1 gesetzt
 
  while(eingabeok != 1)	// 1. Schleife Anfang 
  {						// Läuft solange bis Eingabe OK
   printf("Zeit bis zum Shutdown in Minuten eingeben:");
   fflush(stdin);				   // Tastaturspeicher leeren
   if( (scanf("%lf",&zeit)) == 1)   // Einlesen des Wertes&Prüfen ob Wert gültig
   {  
	if((zeit > 0) && (zeit < 43201))// Prüft ob Wert größer 0 und kleiner
	{							   // 43201 Minuten = 1 Monat
	 eingabeok = 1;				 // Schalter zum Beenden der 1.Schleife
	}
   }
  }						// 1. Schleife Ende
  for(i=0; i< zeit; i++) // 2. Schleife Anfang (Dauer 1 Minute)
  {
   system("cls");		  // Löschen des Bildschirminhaltes
   rest = zeit - i;		// Berechnung der Restzeit
   if(rest > 1)			// Für Trennung von Minuten und Minute
	{					  
	 printf("%d Minuten bis zum Shutdown",rest);
	}
   else
	{
	 printf("%d Minute bis zum Shutdown",rest);
	}						  
   sleep(60000);		   // System wartet 1 Minute = 60000 ms
  }						// 2. Schleife Ende
  system("shutdown.exe -s -t 00 "); 
						   // Windows XP-Befehl zum Herunterfahren
						   // Für mehr Infos in der Console
						   // shutdown -help eingeben
  return 0; 
}						  //Programmende


Als Anhang das Programm als auführbare Datei.

Dieser Beitrag wurde von Timo1982 bearbeitet: 26. September 2007 - 15:52

0

Anzeige



#2 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 13. September 2007 - 07:16

Freut mich, dass hier weiterhin kleinere Programm veröffentlicht werden. Weiter so! :)

Zitat

Ich weiß, C ist uncool, weil kein klicki-bunti

:) Du kannst doch auch in C klicki-bunti Anwendungen schreiben.

Eine allgemeine Frage...
Will jetzt keinesfalls dein Programm schlecht reden oder dergleichen, aber was spricht dagegen direkt den Schalter -t bei shutdown zu benutzen?
0

#3 _Timo1982_

  • Gruppe: Gäste

geschrieben 13. September 2007 - 10:17

Ich weiß ^^ Aber C ist (für mich jedenfalls) ein ungeschriebenes Synonym für "Anwendungen, die in der Konsole laufen"

Ich habe es auch erst mit dem "-t xx"-Operator gemacht, aber folgende Gründe ließen mich dann doch das Programm schreiben (meine Alternative in Klammern):

- Man muß -t xx in Sekunden eingeben. Wenn ich mir abends noch nen Film angucke, muß ich also die Minuten in Sekunden umrechnen, um sie eingeben zu können. Unnötige Arbeit :) (Mein Prog nimmt die Zeit in Minuten entgegen)

- Man muß immer ne Konsole ausmachen und dort "shutdown -s -t xx" eingeben. (Hier reicht ein Klick auf die Shut-x.de und Eingabe der Zeit)

- Startet man so den Timer, erscheint ein windowseigenes Fenster, welches immer im Vordergrund ist, mit "Der PC wird in XX heruntergefahren. Dieses Fenster kann man nicht minimieren und deshalb muß man es immer (umstädlich) "aus" dem Desktop schieben.
Tipp einfach mal shutdown -s -t 99 ein, dann weißt du was ich meine. Abbrechen kannste es mit shutdown -a (Mein Prog läuft im Fenster und kann einfach in den Task minimiert werden)

- Will man das Herunterfahren stoppen, so muß man wieder in die Konsole und shutdown -a eingeben. (Hier reicht das einfache Schließen des Fensters)


Will damit sagen, dass mein Prog nicht das Rad neuerfindet (die Shutdown.exe gibs ja schon), aber es macht aus der Stahlfelge nen schicke Alufelge :)

Zum Schluß noch ein Satz meines ehemaligen C-Professors, der bei solchen Dingen immer paßt:

Zitat

So etwas resultiert aus Unzufriedenheit über das Vorhandene. Unzufriedenheit ist der größte Antreiber des Fortschritts. Oder glauben sie, dass wir heute Autos und Waschmaschienen hätten, wenn es keinen gestört hätte zu Fuß zu gehen oder Wäsche mit der Hand zu waschen

Will jetzt nicht sagen, das mein Prog der "Fortschritt" ist, aber es ist aus genau dem Gedanken entstanden.

Dieser Beitrag wurde von Timo1982 bearbeitet: 13. September 2007 - 10:26

0

#4 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 13. September 2007 - 10:20

Beitrag anzeigenZitat (Witi: 13.09.2007, 08:16)

...
Eine allgemeine Frage...
Will jetzt keinesfalls dein Programm schlecht reden oder dergleichen, aber was spricht dagegen direkt den Schalter -t bei shutdown zu benutzen?


Hi,

laut der Hilfe der shutdown.exe kann man Maximal 600 s = 10 min einstellen, daher ist die Idee mit dem Programm ganz gut.

	/t xxx	 Legt die Zeitüberschreitungsperiode vor dem Herunterfahren auf
			   xxx Sekunden fest. Der gültige Bereich ist von 0-600, der
			   Standardwert ist 30. Die Verwendung von "/t xxx" setzt voraus,
			   dass die Option "/f" verwendet wird.


Gruß,
Stefan
0

#5 _Timo1982_

  • Gruppe: Gäste

geschrieben 13. September 2007 - 10:28

Also bei mir gehen auch Zeiten über die 10 Minuten in der Shutdown.exe

Habe eben es nochmal probiert:
shutdown -s -t 5400
fährt mein Sys in 90 Minuten runter
0

#6 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 13. September 2007 - 10:46

Zitat

laut der Hilfe der shutdown.exe kann man Maximal 600 s = 10 min einstellen, daher ist die Idee mit dem Programm ganz gut.

ok...gutes Argument. Stattgegeben :)
0

#7 _Timo1982_

  • Gruppe: Gäste

geschrieben 26. September 2007 - 15:53

Kleines Update :smokin:
Einfach den ersten Beitrag lesen.
0

#8 Mitglied ist offline   Fabi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.958
  • Beigetreten: 30. August 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 08. Oktober 2007 - 19:39

ich hab mal so was ähnliches geschrieben, und muss leider feststellen, das sich der shutdown befehl nur mit administartor rechten ausführen lässt.

kennt jemand eine möglichkeit, wie man das umgehen kann? denn si ein tool macht auuch nur dann sinn, wenn man es auch mit einem eingeschränkten konto verwenden kann!

lg,
Fabi
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0