Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   XP shutdownbefehle (https://www.delphipraxis.net/103610-xp-shutdownbefehle.html)

JB-1990 18. Nov 2007 16:02


XP shutdownbefehle
 
Hey ho Leutz,
hab 'n Prog geschrieben, wo man PC in einer bestimmten zeit herunterfahren,neustarten,abmelden und in standby setzen kann...
funktioniert alles ganz gut bis auf standby...

hab alles mit ShellExecute gemacht jetzt fehlt mir der Konsolenbefehl um in den Standby setzen (unter windows XP)...

shutdown is ja shutdown -s restart shutdown -r und abmelden shutdown -l

hab shutdown -h gefunden, was angeblich in ruhezustand sein soll, funzt aber net, kennt jemand den kosolenbefehl für standby unter windowsXP?
THX
LG JB-1990

R4id 18. Nov 2007 16:10

Re: XP shutdownbefehle
 
Start > Ausführen > "cmd"
Da gibst du "shutdown /?" ein, dann kommt der Syntax zum Shutdown Befehl!

MfG, R4id

RWarnecke 18. Nov 2007 16:10

Re: XP shutdownbefehle
 
Diese Seite sollte Dir weiterhelfen.

JB-1990 18. Nov 2007 16:35

Re: XP shutdownbefehle
 
Zitat:

Zitat von R4id
Start > Ausführen > "cmd"
Da gibst du "shutdown /?" ein, dann kommt der Syntax zum Shutdown Befehl!

MfG, R4id

thx gibt aber leider kein standby

Zitat:

Zitat von RWarnecke

Diese Seite sollte Dir weiterhelfen.

shutdown, restart und abmelden funzen doch, abgesehen davon check ich net,was da drin steht...

DeddyH 18. Nov 2007 16:40

Re: XP shutdownbefehle
 
Dann schau mal hier(erster Google-Treffer bei Eingabe von "shutdown.exe standby").

Luckie 18. Nov 2007 16:55

Re: XP shutdownbefehle
 
Und wa smacht ein nicht Administrator mit dem Programm? Zum ausführen der shutdown.exe sind Administratorenrechte nötig.

JB-1990 18. Nov 2007 21:02

Re: XP shutdownbefehle
 
Zitat:

Zitat von Luckie
Und wa smacht ein nicht Administrator mit dem Programm? Zum ausführen der shutdown.exe sind Administratorenrechte nötig.

Kurz und knapp, der hat pech, der muss den PC von Hand herunterfahren oder was auch immer.
Aber wo hat man keine Administratoren Rechte und es ist von Nöten, dass sich der PC erst später alleine ausschaltet, das ist ja der Sinn und Zweck des Programms. Dass man sich vom PC entfernen kann und er sich dann alleine aus macht.
Anwendungsbsp.:

Download wird gestartet und man muss aber zum Training und der Download is aber in 30 min fertig,und außer man selbst ist grad net da und es kommt auch kein andere in der nächsten Zeit um ihn auszumachen.
Man hört musik und is kurz vorm einpennen, man weiß aber in etwa wann mein einpennt, man möchte aber unbedingt musik hören, die aufm rechner is.Rolinge und Geld bzw. Zeit für brennen nicht da und man will die playlist auch nur einmal in der Reihenfolge hören.

Wozu braucht man sonst so ein Programm,außer um energie zu sparen, ich glaube kaum, dass man im internetcafé sowas braucht, oder in der Schule, aber selbst da dürfte es gehen.Kein Plan wo man keine adminrechte hat und der PC schaltet sich erst später aus, da er noch Aktivität zeigt.Von daher sinnlose frage, sorry, aber is nunma so. Kannst natürlich widersprechen, dann möchte ich aber schöne Argumente haben ^^

Zitat:

Zitat von Michael
Dann schau mal hier(erster Google-Treffer bei Eingabe von "shutdown.exe standby").

ich trottel, hatte ich schon angeklickt gehabt aber mich durchd die Werbung verwirren lassen.
THX

Luckie 18. Nov 2007 21:28

Re: XP shutdownbefehle
 
[quote="JB-1990"]
Zitat:

Zitat von Luckie
Aber wo hat man keine Administratoren Rechte

Ich zum beispiel in 99% der Zeit, an der ich am PC arbeite.

Zitat:

und es ist von Nöten, dass sich der PC erst später alleine ausschaltet, das ist ja der Sinn und Zweck des Programms. Dass man sich vom PC entfernen kann und er sich dann alleine aus macht.
Das heißt für alle sicherheitsbewußten PC-Benutzer ist dein Programm nicht zu gebrauchen? Und unter Vista eventuell noch nicht mal für dem Administrator selber.

JB-1990 20. Nov 2007 21:15

Re: XP shutdownbefehle
 
@all
hab heute rausgefunden, dass ein Unterschied zwischen Standby und Ruhezustand existiert.(Ruhezustand wird kein Strom verbraucht und sämtliche Daten werden temp auf der Festplatte gespeichert,Standby wird Strom verbraucht uns sämtliche Daten werden im RAM gespeichert)
würde gerne wissen, wie man es hinbekommt, dass ma den PC über CMD.exe oder RUN32DLL.exe oder was auch immer für ne Lösung zum Ruhezustand bewegen kann...google gibt mir immer nur die RUN32DLL für standby
THX im voraus




@Luckie
Zitat:

Zitat von Luckie
Zitat:

Zitat von JB-1990
Aber wo hat man keine Administratoren Rechte

Zitat:

Zitat von Luckie
Ich zum beispiel in 99% der Zeit, an der ich am PC arbeite.

Wo arbeitest du denn bittewo man so ein Prog gebrauchen kann?

Zitat:

Zitat von JB-1990
und es ist von Nöten, dass sich der PC erst später alleine ausschaltet, das ist ja der Sinn und Zweck des Programms. Dass man sich vom PC entfernen kann und er sich dann alleine aus macht.

Zitat:

Zitat von Luckie
Das heißt für alle sicherheitsbewußten PC-Benutzer ist dein Programm nicht zu gebrauchen? Und unter Vista eventuell noch nicht mal für dem Administrator selber.

Was heißt hier für sicherheitsbewusste ist das nicht zu empfehlen?Sag mir einen Ort, wo ein Unbekannter an deine so wichtigen daten auf deinen PC kommt UND wo man das Programm braucht (vgl. "Wo arbeitest du...") und das zu Vista, im I-net gibt es so viele Seiten wo steht, dass man Adminrechte bekommt.

Ziemlich sinnlose Disskusion findest du nicht? Jeder sollte für sich entscheiden, ob und wann er das Programm braucht. Abgesehen davon hab ich es nicht als Freeware,Shareware o.ä. zur verfügung gestellt.Vielleicht kommt da auch neid in dir hervor, in welcher art auch immer? Hab da aber keinen Bock mehr drauf hier weiter zu disskutieren.Wie bereits gesagt, wenn dir mein Prog net gefällt, dann mach ein eigenes was viel besser ist oder schreib Verbesserungsvorschläge für minderwertige Diskussionen ist das Forum hier zu schade, weil es echt tolle Leute gibt, die hier sehr schnell,sehr gute und durch aus äußerst kompetente Antworten geben wie in keinem Forum sonst.(Punkt)

bitsetter 20. Nov 2007 22:46

Re: XP shutdownbefehle
 
Zitat:

Zitat von DeddyH
Dann schau mal hier(erster Google-Treffer bei Eingabe von "shutdown.exe standby").

Hi,

da steht:
Zitat:

RunDLL32.EXE powrprof.dll,SetSuspendState
habe es gerade ausprobiert, bei mir hat es funktioniert.

Dezipaitor 21. Nov 2007 01:04

Re: XP shutdownbefehle
 
Wenn der Benutzer das Privile "ShutdownSystem" hat, dann sollte er shutdown.exe ohne Probleme verwenden können.

Luckie 21. Nov 2007 09:30

Re: XP shutdownbefehle
 
Zitat:

Zitat von JB-1990
Ziemlich sinnlose Disskusion findest du nicht?

Ich wollte dich nur auf ein Manko deines Programmes hinweisen. Hinzukommt, es sind genau solche Programme, die dazu führen, dass viele Windows Benutzer immer noch als Administrator arbeiten. Unter Linux gäbe es diese Diskussion erst gar nicht, da dein programm von vorneherein als unbrauchbar eingestuft wäre.

Zitat:

Jeder sollte für sich entscheiden, ob und wann er das Programm braucht.
Dagegen habe ich auch nichts gesagt.

Zitat:

Abgesehen davon hab ich es nicht als Freeware,Shareware o.ä. zur verfügung gestellt.
Wie gesagt, es war nur ein wohlgemeinter Hinweis.

Zitat:

Vielleicht kommt da auch neid in dir hervor
You made my day. :mrgreen: Ich wüßte zumindest, wie ich es schreiben müsste, damit es auch mit eingeschränkten Benutzerrechten funktioniert.

Zitat:

Hab da aber keinen Bock mehr drauf hier weiter zu disskutieren.
Ich auch nicht, da du anscheinend keine konstruktive Kritik verträgst und dich gleich persönlich angegriffen fühlst.

Zitat:

dann mach ein eigenes was viel besser ist
Könnte ich machen, habe aber zum einem keine Zeit dazu und desweiteren ist es keine Herausforderung, die mich reizen würde, da es für mich nichts neues bringen würde.

Zitat:

oder schreib Verbesserungsvorschläge
MSDN-Library durchsuchenExitWindowsEx

Zitat:

für minderwertige Diskussionen ist das Forum hier zu schade, weil es echt tolle Leute gibt, die hier sehr schnell,sehr gute und durch aus äußerst kompetente Antworten geben wie in keinem Forum sonst.(Punkt)
Sach mal, bist du heute mit dem falschen Fuß aufgestanden? Noch mal, ich habe nur ein Manko deines Programmes aufgezeigt und du tust so als wenn ich dich übelst beschimpft hätte. :twisted:

@Dezipaitor: Dieses Privileg müsste der Administrator aber erst explizit vergeben.

Dezipaitor 21. Nov 2007 12:17

Re: XP shutdownbefehle
 
Komisch. Das Herunterfahrenprivileg ist bei mir auch der Hauptbenutzergruppe möglich. Jetzt kann ich nur nicht sagen, ob ich es eingestellt habe, oder es standard ist.

Zeitgesteuert kann man übrigens auch über die Aufgabenplanung unter Zubehör/System etwas machen - z.b. shutdown oder eine Batch aufrufen. Siehe hier. Leider sind wohl Adminrechte notwendig für die Aufgabenplanung, was ich mal garnicht verstehen kann.

Für die Programmierung von "Herunterfahren von System" empfehle ich übrigens lieber ExitWindowsXX oder WMI zu verwenden, weil man Fehler einfach besser überprüfen kann. Zudem können sich Parameter von shutdown.exe von Version zu Version ändern.

Außerdem wäre es eine "Herausforderung" die shutdown.exe in allen Rafinessen nachzubauen. Dabei lernt man wirklich eine Menge.
Verwendet shutdown.exe einen Dienst, um die ganzen Dinge, wie Dialoganzeige zu machen? Würde ich mal denken, oder?

JB-1990 21. Nov 2007 13:28

Re: XP shutdownbefehle
 
@Luckie
das mit den Adminrechten werd ich noch rausbekommen, aber theoretisch braucht man keine, da "Start"-->"Herunterfahren"-->"was auch immer" auch auf die Shutdown.exe zugreifen müsste...

Zitat:

Zitat von Luckie
Ich auch nicht, da du anscheinend keine konstruktive Kritik verträgst und dich gleich persönlich angegriffen fühlst.

Konsutruktiv verstehe ich, dass de Verbesserungsvorschläge für mein Prog bringst und net nur sagst was es nicht kann. Denn ich denke es ist zu erkennen, dass ich auf dem Gebiet neuland erschließe, sonst würde ich sowas net fragen.Genau solche Leute kann ich garnicht ab, die nur an der Arbeit anderer was auszusetzen haben aber nicht sagen, was sie besser machen könnten und erst dann aktiv werden, wenn sie angegriffen werden...

Zitat:

Zitat von Dezipaitor
Außerdem wäre es eine "Herausforderung" die shutdown.exe in allen Rafinessen nachzubauen. Dabei lernt man wirklich eine Menge.
Verwendet shutdown.exe einen Dienst, um die ganzen Dinge, wie Dialoganzeige zu machen? Würde ich mal denken, oder?

Meine Meinung...kein Plan, wie Windows das macht,aber denke ma schon, wäre ma interessant zu wissen, kennt sich jemand damit aus.

RunDLL32.EXE powrprof.dll,SetSuspendState
das funzt, habsch auch schon eingebaut, macht aber wie gesagt nur standby und ich will nicht erst über Standby in den Ruhezustand...hab da was gefunden:

Ruhezustand.bat
powercfg /hibernate on
rundll32.exe powrprof.dll,SetSuspendState

Standby.bat
powercfg /hibernate off
rundll32.exe powrprof.dll,SetSuspendState

Wie kann ich sowas in ein Prog. einbauen ohne gleich die *.bat zu erstellen.

Luckie 21. Nov 2007 13:39

Re: XP shutdownbefehle
 
Zitat:

Zitat von JB-1990
@Luckie
das mit den Adminrechten werd ich noch rausbekommen, aber theoretisch braucht man keine, da "Start"-->"Herunterfahren"-->"was auch immer" auch auf die Shutdown.exe zugreifen müsste...

Glaub mir, man braucht Administratorenrechte, wenn die Privilegien nicht angepasst wurden. Und Windows benutzt wahrscheinlich, die von mir verlinkte API-Funktion.

Zitat:

Genau solche Leute kann ich garnicht ab, die nur an der Arbeit anderer was auszusetzen haben aber nicht sagen, was sie besser machen könnten und erst dann aktiv werden, wenn sie angegriffen werden...
Und ich kann Leute nicht ab, die den Unterschied zwischen konstruktiver Kritik und "was auszusetzen haben" nicht kennen und einen gleich persönlich angreifen, die nicht in der Lage sind höflich nachzufragen, sondern gleich ausfallend werden.

JB-1990 21. Nov 2007 14:11

Re: XP shutdownbefehle
 
Zitat:

Zitat von Luckie
Glaub mir, man braucht Administratorenrechte, wenn die Privilegien nicht angepasst wurden. Und Windows benutzt wahrscheinlich, die von mir verlinkte API-Funktion.

Werden wir noch sehen, werd es bei jemanden ohne Adminrechte machen...
Zitat:

Und ich kann Leute nicht ab, die den Unterschied zwischen konstruktiver Kritik und "was auszusetzen haben" nicht kennen und einen gleich persönlich angreifen, die nicht in der Lage sind höflich nachzufragen, sondern gleich ausfallend werden.
jetzt hat jeder gesagt was er nicht leiden kann, würde sagen Diskussion is beendet.

Zurück zur Frage:

Ruhezustand.bat
powercfg /hibernate on
rundll32.exe powrprof.dll,SetSuspendState

Standby.bat
powercfg /hibernate off
rundll32.exe powrprof.dll,SetSuspendState

Wie krieg ich das in das Prog. ohne 'ne *.bat zu erstellen?

Luckie 21. Nov 2007 14:32

Re: XP shutdownbefehle
 
Zitat:

Zitat von JB-1990
Wie krieg ich das in das Prog. ohne 'ne *.bat zu erstellen?

Hier im Forum suchenShellexecute wäre eine Möglichkeit.

Dezipaitor 21. Nov 2007 14:35

Re: XP shutdownbefehle
 
Das Herunterfahren hat nichts mit Adminrechten zu tun.
Man kann die Gruppe Administratoren und den Benutzer Administrator so einstellen, dass er nichts mehr machen kann.
Es geht nur um das Shutdown Privileg, was Administratoren und Hauptbenutzer normal haben.
Die Privilegien sind immer angepasst! Denn was die Gruppen und Benutzer so mächtig macht, sind eben die Privilegien.

Seht unter den lokalen Kontorichtlinen mit "gpedit.msc" - dem PolicyEditor nach. Da kann man auch dem Gast Shutdownrechte geben.

Zitat:

Zitat von JB-1990
das mit den Adminrechten werd ich noch rausbekommen, aber theoretisch braucht man keine, da "Start"-->"Herunterfahren"-->"was auch immer" auch auf die Shutdown.exe zugreifen müsste...

Dein Benuter hat eben das Shutdownprivileg. Und shutdown.exe wird nicht augerufen. Im Gegenteil. Shutdown.exe und jedes andere Programm verwendet die MSDN API Funktion ExitWindowsEx oder WMI direkt.

Zitat:

Zitat von JB-1990
Zitat:

Zitat von Dezipaitor
Außerdem wäre es eine "Herausforderung" die shutdown.exe in allen Rafinessen nachzubauen. Dabei lernt man wirklich eine Menge.
Verwendet shutdown.exe einen Dienst, um die ganzen Dinge, wie Dialoganzeige zu machen? Würde ich mal denken, oder?

Meine Meinung...kein Plan, wie Windows das macht,aber denke ma schon, wäre ma interessant zu wissen, kennt sich jemand damit aus.

RunDLL32.EXE powrprof.dll,SetSuspendState
das funzt, habsch auch schon eingebaut, macht aber wie gesagt nur standby und ich will nicht erst über Standby in den Ruhezustand...hab da was gefunden:

Ruhezustand.bat
powercfg /hibernate on
rundll32.exe powrprof.dll,SetSuspendState

Standby.bat
powercfg /hibernate off
rundll32.exe powrprof.dll,SetSuspendState

Wie kann ich sowas in ein Prog. einbauen ohne gleich die *.bat zu erstellen.

Mit powercfg aktivierst du den Ruhezustand, auch wenn ihn der Benutzer ausgeschaltet hat in der Systemsteuerung. Danach schaltest du ihn explizit aus und der Benutzer kann den Ruhezustand nicht mehr über den Explorer verwenden.

Mit rundll32 rufst du eine Funktion auf, die in der powrprof.dll enthalten ist. Diese Funktion SetSuspendState kann man direkt aufrufen über Delphi und sogar noch mit Parameter befüllen. Zudem bekommt man Informationen über Fehler.

Ich würde dir empfehlen, direkt die Funktionen zu verwenden und nicht über Batch-Dateien zu gehen. Man verwendet Batch nur dann, wenn mal kurz und einfach etwas benötigt und mein keine Ahnung von Programmierung hat oder der Aufwand dafür zu groß wäre. Für den Zwischenfall gäbe es ja auch noch die MS Windows Skript Sprache, die extra für soetwas gemacht wurde. (sorry keine Ahnung, wie die wirklich heißt).


In der JEDI Security Code Library gibt es dieses Beispiel, welches versucht den Rechner herunterzufahren. Man kann es natürlich für die anderen Stadien anpassen.


Delphi-Quellcode:
(*
This demonstration tries to shutdown your computer by enabling the
needed privilege and calling the WinAPI-function afterwards.
The shutdown will be cancelled after ten seconds.
*)

program SimpleShutdown;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  JwaWindows,
  JwsclExceptions,
  JwsclToken;

var
  Token: TJwSecurityToken;

begin
  try
    Token:=TJwSecurityToken.CreateTokenByProcess(GetCurrentProcess,
      TOKEN_ADJUST_PRIVILEGES or TOKEN_READ or TOKEN_QUERY);
  except
    on E: EJwsclOpenProcessTokenException do
    begin
      Writeln(E.Message);
      Readln;
      Exit;
    end;
  end;
  try
    if Token.PrivilegeAvailable[SE_SHUTDOWN_NAME] then
    begin
      Writeln('SE_SHUTDOWN_NAME is available');
      Token.PrivilegeEnabled[SE_SHUTDOWN_NAME]:=True;
    end
    else
      Writeln('SE_SHUTDOWN_NAME is not available');
  finally
    FreeAndNil(Token);
  end;

  if not InitiateSystemShutdown(nil, 'The computer will be shut down in 60 seconds.', 60, False, False) then
    Writeln(SysErrorMessage(GetLastError))
  else
  begin
    Sleep(10000);
    AbortSystemShutdown(nil); //stops the shutdown
  end;

  Readln;
end.

JB-1990 22. Nov 2007 19:41

Re: XP shutdownbefehle
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von JB-1990
Wie krieg ich das in das Prog. ohne 'ne *.bat zu erstellen?

Hier im Forum suchenShellexecute wäre eine Möglichkeit.

via cmd? Und dann im 4. parameter den Befehl der Bat?

Delphi-Quellcode:
(* 
This demonstration tries to shutdown your computer by enabling the
needed privilege and calling the WinAPI-function afterwards.
The shutdown will be cancelled after ten seconds.
*)

program SimpleShutdown;

{$APPTYPE CONSOLE} 

uses
  SysUtils,
  JwaWindows,
  JwsclExceptions,
  JwsclToken;

var
  Token: TJwSecurityToken;

begin
  try
    Token:=TJwSecurityToken.CreateTokenByProcess(GetCurrentProcess,
      TOKEN_ADJUST_PRIVILEGES or TOKEN_READ or TOKEN_QUERY);
  except
    on E: EJwsclOpenProcessTokenException do
    begin
      Writeln(E.Message);
      Readln;
      Exit;
    end;
  end;
  try
    if Token.PrivilegeAvailable[SE_SHUTDOWN_NAME] then
    begin
      Writeln('SE_SHUTDOWN_NAME is available');
      Token.PrivilegeEnabled[SE_SHUTDOWN_NAME]:=True;
    end
    else
      Writeln('SE_SHUTDOWN_NAME is not available');
  finally
    FreeAndNil(Token);
  end;

  if not InitiateSystemShutdown(nil, 'The computer will be shut down in 60 seconds.', 60, False, False) then
    Writeln(SysErrorMessage(GetLastError))
  else
  begin
    Sleep(10000);
    AbortSystemShutdown(nil); //stops the shutdown
  end;

  Readln;
end.
zwar super lösung, aber geht über mein Verständnis raus, kein plan, was der da macht und das gefällt mir net, wenn ein Programm was macht und ich nicht weiß was...

[edit=Luckie]Delphi-Tags gesetzt. Mfg, Luckie[/edit]

DeddyH 22. Nov 2007 19:45

Re: XP shutdownbefehle
 
Zitat:

Zitat von JB-1990
zwar super lösung, aber geht über mein Verständnis raus, kein plan, was der da macht und das gefällt mir net, wenn ein Programm was macht und ich nicht weiß was...

Wie wäre es dann mit nachlesen? Wenn ich immer alle Befehle, die ich in diesem Forum lese, auf Anhieb verstünde, würde ich mir ein eigenes Delphi schreiben (können).

Dezipaitor 22. Nov 2007 20:05

Re: XP shutdownbefehle
 
Soetwas nennt man Lernen :D - selbständiges Lernen!

JB-1990 23. Nov 2007 21:33

Re: XP shutdownbefehle
 
Zitat:

Zitat von Dezipaitor
Soetwas nennt man Lernen :D - selbständiges Lernen!

XD seh schon :P
na da werd ich mich ma ran machen
trotzdem THX @ all

Dezipaitor 23. Nov 2007 23:25

Re: XP shutdownbefehle
 
Ich kann dir sagen, dass es mit der Bibliothek um Längen einfacher wird, da du dich auf das Problem konzentrieren kannst und nicht mit C Semantik rumschlagen brauchst.

JB-1990 23. Nov 2007 23:54

Re: XP shutdownbefehle
 
*nixmehrcheck*

Dezipaitor 24. Nov 2007 03:09

Re: XP shutdownbefehle
 
Zitat:

Zitat von JB-1990
*nixmehrcheck*

*wasgenau?*

JB-1990 28. Nov 2007 17:23

Re: XP shutdownbefehle
 
Zitat:

Zitat von Dezipaitor
Ich kann dir sagen, dass es mit der Bibliothek um Längen einfacher wird, da du dich auf das Problem konzentrieren kannst und nicht mit C Semantik rumschlagen brauchst.

welche Bibo?

Dezipaitor 28. Nov 2007 18:30

Re: XP shutdownbefehle
 
Ich hab die Bibliothek jetzt in meiner Signatur drin.

JB-1990 1. Dez 2007 01:54

Re: XP shutdownbefehle
 
thx werd sie mir mal bei gelegenheit durchlesen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz