Archiv verlassen und diese Seite im Standarddesign anzeigen : Ausschalttimer!
Painkiller
30.06.2004, 19:09
Hallo ähm kann man mit Delphie einen Timer programmieren der nach ablauf der Zeit den Pc ausschalten lässt?
Mfg Hänsel
TommySZB
30.06.2004, 20:04
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 :)
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 (www.retsfets.de/Downloads/shutdown.zip).
Sorry, hab den delphie übersehen. Naja, so gehts jedenfalls in C++. Zumindest der Privilieg-Teil.
so long,
exr
Painkiller
01.07.2004, 15:07
@ Exr
danke ich hab es mal ausprobiert funzt hervoragend.
Danke
Mfg Painkiller
vBulletin® v3.8.7, Copyright ©2000-2012, vBulletin Solutions, Inc.