Entwickler-Ecke

Sonstiges (Delphi) - Pc Runter fahren


Finger - Mi 19.04.06 09:26
Titel: Pc Runter fahren
Hey! Ich wollte ma fragen ob mir jemand helfen kann ein tool zu proggen mit dem man einstellen kann wann der Pc runterfährt! Also so das man eingeben kann in 20 minuten wird er runtergefahren oder so! Freue mich auf hilfe!


gruss


Moderiert von user profile iconGausi: Topic aus Multimedia / Grafik verschoben am Mi 19.04.2006 um 09:35


Alpha_Wolf - Mi 19.04.06 09:29

Siehst dir am besten mal das Thema in der Lib an: Windows herunterfahren [http://www.delphi-library.de/viewtopic.php?t=8272]

Bitte Suche öfters benutzen ;)

Das mit den 20 min bekommst du ganz einfach mit nem Timer geregelt.


Moderiert von user profile iconGausi: SID aus Link entfernt.

EDIT: Danke Gausi :oops: hatte ich in der Eile ganz vergessen..


Finger - Mi 19.04.06 09:35

Hm...krieg ich nich auf die Reihe :D gibts da ne bessere erklärung oder eine einfachere version?


Alpha_Wolf - Mi 19.04.06 09:40

Ich wiederhol ich mich nur ungern: SUCHE benutzen!!!!

Aber weil dus bist hier ein Direktlink Suche in der Entwickler-Ecke WINDOWS HERUNTERFAHREN

Dort müsstest du auch verständlichere Themen finden.

BTW Was ist denn unklar?


Finger - Mi 19.04.06 09:49

alles... :D ne ich bin neu und muss mich erst ma in die materie reinarbeiten!

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Ich raff des net! :D Kann mri wer nen link posten zu nem fertigen programm eventuell mit quelltext dass man noch n bissel selber basteln kann? wäre noch cool!


Timosch - Mi 19.04.06 10:13

Wir geben dir hier gerne Tipps, aber du wirst hier niemanden finden, der dir deine Programme schreibt.
Die geposteten Links sind doch alle recht einfach zu benutzen. In der Library steht ein fertiger Sourcecode für eine Funktion ShutdownWindows, den musst du einfach in dein Programm einfügen und dann die Funktion aufrufen:
Zitat:
ShutdownWindows(EWX_POWEROFF);


Anarkids - Mi 19.04.06 10:30

hi.

funktioniert auch so:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
ShellExecute(handle, PChar('open'), PChar('C:\Windows\System32\Shutdown.exe'),{+parameter+},nil,sw_shownormal);

// Mögliche parameter (als string angeben):
// -r : neustarten
// -t : zeit in sekunden
// -s : herunterfahren
// -f : alle gestarteten Programme killen


mfg,
anarkids

edit1: ups, nochn fehler korregiert ;-)


Finger - Mi 19.04.06 10:49

danke das würde gehen! wie genau muss ich das parameter einfügen?


Anarkids - Mi 19.04.06 10:58

naja als string eben:


Delphi-Quelltext
1:
2:
ShellExecute(handle, PChar('open'), PChar('C:\Windows\System32\Shutdown.exe'),'-r -t 30',nil,sw_shownormal);
//startet in 30sek neu


edit1: Also ich bin mit aber nicht sehr sicher, was das runterfahren per ShellExecute betrifft. Vielleicht ist die Lösung der anderen besser. Ich weiß es halt nich genau. Viel spaß damit :)


Finger - Mi 19.04.06 11:01

Da kommt immer der Fehler


Delphi-Quelltext
1:
[Error] Unit1.pas(28): Incompatible types: 'Integer' and 'Pointer'                    


Anarkids - Mi 19.04.06 11:04

dann schreib mal oben bei USES "shellapi" dazu (ohne anführungszeichen).

so:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
unit unit1;

interface

uses
  {blablabla}, shellapi;

// [...]


...hoffe du verstehst das so...


Finger - Mi 19.04.06 11:46

Ja das programm funzt! Aber wenn ich jetzt anstelle eines festen wertes im parameter eine Variable eingeben will wie geht denn das? Bis jetzt habe ich


Delphi-Quelltext
1:
ShellExecute(handle, PChar('open'), PChar('C:\Windows\System32\Shutdown.exe'),'-r -t 30',nil,sw_shownormal);                    


Das wären 30 sekunden! aber wenn ich jetzt diese 30 sekunden immer anders will, also mit nem edit feld, was muss ich dann machen?


So siehts jetzt aus!


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var
 a: integer;
begin
a:= StrToInt(Edit1.Text);

...PChar('-r, -t' + IntToStr(a*60))...


Aber irgendwie geht des net! Kann wer helfen?

ps.: Hab herausegfunden das das mit service pack 2 sowieso net mehr möglich ist :D das geilste mein tool is fürn *popo* :D:D


Anarkids - Mi 19.04.06 11:51

dann kannst du's doch nochma mit den Lösungen der andern versuchen oder?


Finger - Mi 19.04.06 11:52

Ja muss wohl! Nur leider ist das mit Logoff (oder wie des heisst) erstens sau kompliziert! und 2 hat mir wer erzählt das es vor dem runterfahren noch ne manuelle bestätigung bräuchte! das widerum würde heissen das diese tool schon wieder für nix is :D


Anarkids - Mi 19.04.06 12:02

also erstmal ist es immer gut zu wissen, warum du eigentlich den PC runterfahren willst. ICh bin sicherlich nicht jemand, der dir zu solchen (komplizierten) Sachen Tips geben kann. Weil ich auch noch'n ziemlicher Frischling in Delphi bin. Aber wenn du ne manuelle Bestätigung (was für mich immer was mit Klicken oder Enter drücken zu tun hat) brauchst, dafür gibt es auch lösungen. Suche benutzen hilft wirklich fast immer ;-)

hoffe für dich du packst das!

mfg,
anarkids

edit1: habe gerade mal nachgeschaut und bemerkt, dass ich auch service pack 2 hier laufen habe. funktioniert einwandtfrei!!!


Alpha_Wolf - Mi 19.04.06 12:07

user profile iconFinger hat folgendes geschrieben:
Ja muss wohl! Nur leider ist das mit Logoff (oder wie des heisst) erstens sau kompliziert! und 2 hat mir wer erzählt das es vor dem runterfahren noch ne manuelle bestätigung bräuchte! das widerum würde heissen das diese tool schon wieder für nix is :D


Zu 1
Dann sag was du nicht verstehst.. wir helfen gern, aber wenn dus nicht mal versuchen willst..

Zu 2
Wo ist denn das Problem?


Delphi-Quelltext
1:
2:
3:
4:
5:
if (MessageDlg('Möchten Sie Windows heruntefahren?',mtConfirmation,[mbYes,mbNo],0) = mrYes) then begin   
   // Windows heruntefahren   
   end else begin   
   // Nichts tun.. else teil kann auch weggelassen werden wenn es da nix zutun gibt.  
   end;


Sollte dir ein wenig helfen..


matze.de - Mi 19.04.06 12:09

Probiers mal hiermit: Suche im MSDN INITIATESYSTEMSHUTDOWN

Bsp: InitiateSystemShutdown('127.0.0.1'''0, True, False);

Und zum Thema Logout: ExitWindows(00); ;)

mfg matze


der organist - Mo 15.06.09 21:53

user profile iconAnarkids hat folgendes geschrieben Zum zitierten Posting springen:
hi.

funktioniert auch so:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
ShellExecute(handle, PChar('open'), PChar('C:\Windows\System32\Shutdown.exe'),{+parameter+},nil,sw_shownormal);

// Mögliche parameter (als string angeben):
// -r : neustarten
// -t : zeit in sekunden
// -s : herunterfahren
// -f : alle gestarteten Programme killen


mfg,
anarkids

edit1: ups, nochn fehler korregiert ;-)


wenn "-s" als parameter gegeben wird, was passiert mit Programmen, die noch am laufen sind? oder muss ich da dann "-f -s" eingeben?


Xentar - Mo 15.06.09 21:57

Wie schafft man es eigentlich, einen drei Jahre alten Thread auszugraben?
Ich mein, der kann ja schlecht in den Top10 gestanden haben.

Edit: Um deine Frage trotzdem zu beantworten:
Ich denke mal, wenn man -f nicht angibt, kommt nur diese Meldung "blah, Programm reagiert nicht", und wenn man -f dazu gibt, wird das Programm nach Zeit X gekillt.


der organist - Mo 15.06.09 21:59

per Suche?? Heisst doch, dass man die benutzen soll....

gibts auch ne Antwort auf die Frage? ;)

EDIT: Thx


Xentar - Mo 15.06.09 22:00

Ja, und es heißt eigentlich auch, neue Frage neues Thema ;)

Zur Antwort: Siehe meinen Edit oben. Ansonsten, einfach ausprobieren :D


Popov - Mo 15.06.09 22:12

Ich wollte gerade antworten als ich das Datum bemerkte.

Übrigens, mit Geplante Tastks (ist unter Zubehör zu finden) kann man solche Aktionen auch ausführen. Also mit Hausmitteln.


Delete - Di 16.06.09 03:59

Nur so nebenbei, um den Rechner mit dem Windows Programm Shutdown runterzufahren, benötigt man Administratorenrechte. Da ich unter XP nicht als Administrator arbeite, würde es nicht funktionieren.

Und wozu braucht man eigentlich so was?