AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Shutdown nach bestimmter Zeit

Ein Thema von FreakyF · begonnen am 7. Nov 2007 · letzter Beitrag vom 8. Nov 2007
Antwort Antwort
Seite 1 von 2  1 2      
FreakyF

Registriert seit: 7. Nov 2007
22 Beiträge
 
#1

Shutdown nach bestimmter Zeit

  Alt 7. Nov 2007, 18:52
Hallo!

Ich verwende folgenden Code, um den PC herunter zu fahren:

Delphi-Quellcode:
function ExWindows(const AFlag: Word): Boolean;
var
  vi : TOSVersionInfo;
  hToken : THandle;
  tp : TTokenPrivileges;
  h : DWord;
begin
  flag:= EWX_Shutdown;
  result:= false;

  vi.dwOSVersionInfoSize:=SizeOf(vi);

  if GetVersionEx(vi) then
  begin
    if vi.dwPlatformId = VER_PLATFORM_WIN32_NT then
    begin
      // Windows NT
      // Achtung bei Delphi 2 muß @hToken stehen ...
      if OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGES,hToken) then
      begin
        LookupPrivilegeValue(nil,'SeShutdownPrivilege',tp.Privileges[0].Luid);
        tp.PrivilegeCount := 1;
        tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
        h := 0;
        AdjustTokenPrivileges(hToken,False,tp,0,PTokenPrivileges(nil)^, h);
        CloseHandle(hToken);
        result := ExitWindowsEx(Aflag, 0);
      end;
    end
    else
    begin // Windows 95
      Result := ExitWindowsEx(Aflag, 0);
    end;
  end;
end;
Wo/wie kann ich festlegen, dass der PC erst nach z.b. 1 Minute herunterfahren wird?


Vielen Dank

Markus
  Mit Zitat antworten Zitat
fLaSh11
(Gast)

n/a Beiträge
 
#2

Re: Shutdown nach bestimmter Zeit

  Alt 7. Nov 2007, 18:57
ruf doch einfach die shutdown.exe (param "-s" für herunterfahren) in C:\Windows\System32 auf und übergebe ihr den Parameter "-t 60"...

oder willst du unbedingt den Code da benutzen?
  Mit Zitat antworten Zitat
FreakyF

Registriert seit: 7. Nov 2007
22 Beiträge
 
#3

Re: Shutdown nach bestimmter Zeit

  Alt 7. Nov 2007, 19:02
Zitat von fLaSh11:
ruf doch einfach die shutdown.exe (param "-s" für herunterfahren) in C:\Windows\System32 auf und übergebe ihr den Parameter "-t 60"...

oder willst du unbedingt den Code da benutzen?

Danke für die superschnelle Antwort.
Dein Vorschlag klingt interessant. Kannst du mir erklären, wie ich vorgehen muss?
Ich hab nicht gewusst, dass man überhaupt auf die shutdown.exe zugreifen kann...
Wichtig ist, dass das ganze in Delphi passiert.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Shutdown nach bestimmter Zeit

  Alt 7. Nov 2007, 19:13
Zitat von FreakyF:
Wo/wie kann ich festlegen, dass der PC erst nach z.b. 1 Minute herunterfahren wird?
Es bleibt doch ganz dir überlassen, wann du diese Funktion aufrufst.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
FreakyF

Registriert seit: 7. Nov 2007
22 Beiträge
 
#5

Re: Shutdown nach bestimmter Zeit

  Alt 7. Nov 2007, 19:32
Das Problem ist doch, dass man sich unter NT-Systemen erstmal die Rechte beschaffen muss.
Es wird doch nicht einfach reichen, die shutdown.exe über eine Delphi-Funktion aufzurufen oder?

Kann man mit dem Code, den ich oben angegeben habe, keine Zeit vergeben?
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Shutdown nach bestimmter Zeit

  Alt 7. Nov 2007, 19:33
Hallo!!!

Das ganze ist wirklich ganz einfach zu programmieren und noch zu erweitern (z.B. zu einer bestimmten Uhrzeit herunterfahren...) wenn Du folgendes macht (und bei DEINEM Code oben bleibst):

Hier mal ein Pseudocode (Unit DateUtils einbinden):

Delphi-Quellcode:
ShutDownDateTime : TDateTime;

[...]

ShutDownDateTime := AddMinutes(StrToInt(EditShutDownAfterXMinutes.Text), Now);

[...]
procedure Timer1OnTimer(Sender : TObject);
Begin
 If Now >= ShutDownDateTime Then Begin;
   // Hier Windows herunterfahren oder was auch immer...
 End;

End;
[...]
... zumindest so ähnlich, mal als Denkanstoß. Habe vor einigen Wochen ein selbiges Programm geschrieben, leider schon wieder gelöscht, sonst könnte ich Dir den Source posten.

SCRaT
Michael Kübler
  Mit Zitat antworten Zitat
FreakyF

Registriert seit: 7. Nov 2007
22 Beiträge
 
#7

Re: Shutdown nach bestimmter Zeit

  Alt 7. Nov 2007, 19:38
Der Aufruf der shutdown.exe würde dann folgendermaßen funktionieren?:

Delphi-Quellcode:
uses ShellAPI;

ShellExecute(Handle, 'open', PChar(C:\Windows\System32\shutdown.exe -s -m \\Rechnername -t %STime% -c "Herunterfahren des PCs" ), nil, nil, sw_Show);
  Mit Zitat antworten Zitat
FreakyF

Registriert seit: 7. Nov 2007
22 Beiträge
 
#8

Re: Shutdown nach bestimmter Zeit

  Alt 7. Nov 2007, 19:43
Zitat von scrat1979:
Hallo!!!

Delphi-Quellcode:
ShutDownDateTime : TDateTime;

[...]

ShutDownDateTime := AddMinutes(StrToInt(EditShutDownAfterXMinutes.Text), Now);

[...]
procedure Timer1OnTimer(Sender : TObject);
Begin
 If Now >= ShutDownDateTime Then Begin;
   // Hier Windows herunterfahren oder was auch immer...
 End;

End;
[...]


SCRaT
Danke schon mal für deinen Tipp. Hab leider noch nicht ganz die Funktion verstanden.
Wenn jemand ein ähnliches Programm mit Code hat, dann würd ich mich darüber freuen

Oder soll ich doch die Idee mit der shutdown.exe machen?


Markus
  Mit Zitat antworten Zitat
ringli

Registriert seit: 7. Okt 2004
509 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Shutdown nach bestimmter Zeit

  Alt 7. Nov 2007, 19:47
Zitat:
Oder soll ich doch die Idee mit der shutdown.exe machen?
Ist nicht zu empfehlen da du unter Windows XP dafür Administratorrechte benötigst.
  Mit Zitat antworten Zitat
FreakyF

Registriert seit: 7. Nov 2007
22 Beiträge
 
#10

Re: Shutdown nach bestimmter Zeit

  Alt 7. Nov 2007, 19:53
Dann wärs schön, wenn mir jemand scrat1979's Vorschlag nochmal genauer erklären könnte.

Danke
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz