AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Ruhezustand auslösen

Ein Thema von Zacherl · begonnen am 8. Jul 2005 · letzter Beitrag vom 22. Nov 2005
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Ruhezustand auslösen

  Alt 8. Jul 2005, 14:55
Hallo,
wie kann man mit Delphi den Ruhezustand auslösen?

Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#2

Re: Ruhezustand auslösen

  Alt 8. Jul 2005, 15:01
SetSuspendState(), denke ich?! Das PSDK ist dein Freund!
Alternativ: SetSystemPowerState().
  Mit Zitat antworten Zitat
BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Ruhezustand auslösen

  Alt 8. Jul 2005, 15:02
Vermutlich ShellExecute und dann ShutDown.exe mit irgendwelchen Parametern...
//Ich hätte es davor überprüfen sollen ShutDown.exe scheint keinen solchen parameterzu haben
Benjamin
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#4

Re: Ruhezustand auslösen

  Alt 8. Jul 2005, 15:03
Kuck mal nach MSDN-Library durchsuchenSetSystemPowerState

Benötigt aber (trotz des Nicht-Shutdowns) das SeShutDownPrivilege.
  Mit Zitat antworten Zitat
MazeBandit

Registriert seit: 21. Nov 2005
Ort: Berlin
3 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Ruhezustand auslösen

  Alt 22. Nov 2005, 00:33
Hallo erstmal,

ich hab mich heute erst hier eingeloggt, aber dazu gleich mal ne Frage: dieses setsuspendstate oder auch das setsystempowerstate sind ja so erstmal nciht anwendbar für Delphi 2005... Falls man sie doch direkt einbinden kann (die erforderlichen Rechte für Win XP habe ich bereits festgelegt), würde es mich interessieren, wie ich damit den Ruhezustand und den Standbyzustand für den Rechner erreichen kann.

Habt ihr mal einen Tipp, wie man es effizient in den Quelltext einbinden kann? (bin zwar schon über das 'Hello World' Stadium hinaus, aber noch ein ziemlicher Anfänger...)

Ich freu mich schon auf Antwort,

Maze
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#6

Re: Ruhezustand auslösen

  Alt 22. Nov 2005, 00:44
Suche mal nach Hier im Forum suchenEinbinden einer DLL - oder direkt: http://www.delphipraxis.net/internal...ct.php?t=61658

@Dax: Deine Aussage ist so nicht haltbar. Es findet auf Systemebene sowas wie ein Shutdown statt. Daß der Name nicht extra auf die Powerstates eingeht, ist dabei nicht von Bedeutung
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Ruhezustand auslösen

  Alt 22. Nov 2005, 06:35
Zitat von MazeBandit:
dieses setsuspendstate oder auch das setsystempowerstate sind ja so erstmal nciht anwendbar für Delphi 2005...
Wieso nicht?
Ich Tippe einfach
Windows.SetSystemPowerState(True, False); Wun spätestens nach dem Punkt kommt die Liste, in der auch SetSystemPowerState enthalten ist.
Wenn du das Windows. weglassen willst, musst du Windows in die Uses-Klausel mit aufnehmen, was jedoch meist schon getan ist(außer bei Konsolenanwendungen, etc.).
Hast du überhaupt ein Delphi.Win32 - Projekt erstellt? Also du darfst natürlich kein .NET - Projekt haben. Sonst gehts nicht so.

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#8

Re: Ruhezustand auslösen

  Alt 22. Nov 2005, 07:18
Zitat von Olli:
@Dax: Deine Aussage ist so nicht haltbar. Es findet auf Systemebene sowas wie ein Shutdown statt. Daß der Name nicht extra auf die Powerstates eingeht, ist dabei nicht von Bedeutung
Entschuldige die Verwirrung Auf Systemebene ists ein Shutdown, für den User aber eher Standby, so ist jedenfalls meine Erfahrung
  Mit Zitat antworten Zitat
MazeBandit

Registriert seit: 21. Nov 2005
Ort: Berlin
3 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Ruhezustand auslösen

  Alt 22. Nov 2005, 08:09
@faux: erstmal danke für den Tipp, ich hab das Ganze folgendermaßen umgesetzt:

Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
(...)

Delphi-Quellcode:
function ExitWin(flag:word): Boolean;
var vi : TOSVersionInfo;
    hToken : THandle;
    tp : TTokenPrivileges;
    h : DWord;
(...)

Delphi-Quellcode:
    OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,hToken);
    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);
(...)

Delphi-Quellcode:
    if flag = 0 then
      result := setsystempowerstate(true,true);
  end
Für das Tool übergebe ich mit flag entweder die Werte für das Herunterfahren, Neustarten etc. oder eben den Wert 0 für Standby und 1 für den Ruhezustand...

Obwohl ich ein Delphi - 32 Projekt gestartet habe (sonst würde ja auch das Herunterfahren nicht funktionieren), kann ich trotzdem weder den Ruhezustand noch den Standbyzustand herbeirufen.

Ist eventuell ein Fehler im Code, den ich aus Betriebsblindheit übersehen habe?

Maze
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Ruhezustand auslösen

  Alt 22. Nov 2005, 17:58
Gibts einen Syntaxfehler, eine Exception oder tut sich einfach nichts.
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:28 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