Ausschalttimer!

Painkiller

Cadet
Mitglied seit
30.06.2004
Beiträge
7
Renomée
0
Hallo ähm kann man mit Delphie einen Timer programmieren der nach ablauf der Zeit den Pc ausschalten lässt?
Mfg Hänsel
 
Das ganze sollte mit der Windows API Funktion "ExitWindows" funktionieren, da ich aber von Delphi wenig Ahnung habe kann ich dir die genaue Implementierung nicht sagen, in VB wüsste ichs *gg*.
Suche halt mal nach der o.g. Funktion.

Gruss
 
Hi.

Habe das hier über Google gefunden. Kannst ja mal testen und berichten :)
Code:
Uses WINPROCS

procedure TForm1.ExitWindows;
begin
{$IFDEF WIN32}
  ExitWindowsEx(EWX_SHUTDOWN {EWX_LOGOFF}, 0);
{$ELSE}
  WinExec('Rundll.exe User,ExitWindows',SW_HIDE);
{$ENDIF}
end;

Jetzt musst du einen Timer auf die Form klatschen und dann auf den Trigger des Timers die Funktion aufrufen. So sollte es dann gehen.
 
Hi.

So einfach geht das leider nur unter Win'98 Systemen. Alles auf dem NT-Kern erwartet dass das Programm das Privileg hat, das System herunterfahren zu dürfen.

Dazu ist glaube ich folgender Code-Abschnitt zuständig:

HANDLE token;
TOKEN_PRIVILEGES tokenpriv;

OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &token);
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tokenpriv.Privileges[0].Luid);
tokenpriv.PrivilegeCount=1;
tokenpriv.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(token, false, &tokenpriv, 0, (PTOKEN_PRIVILEGES)NULL, 0);

Wenn du ein prog suchst, dass deinen PC als Timer runterfährt, das gibts hier.

[EDIT]
Sorry, hab den delphie übersehen. Naja, so gehts jedenfalls in C++. Zumindest der Privilieg-Teil.
[/EDIT]

so long,
exr
 
Zurück
Oben Unten