AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Windows in 5 Sekunden ausschalten, aber wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Windows in 5 Sekunden ausschalten, aber wie?

Ein Thema von Mazel · begonnen am 31. Dez 2005 · letzter Beitrag vom 14. Jan 2006
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#11

Re: Windows in 5 Sekunden ausschalten, aber wie?

  Alt 31. Dez 2005, 17:23
@noch_ein_hannes:
Er hat die Angewohnheit solange vor dem Rechner zu sitzen, bis das Lämpchen am Bildschirm rot blinkt.
Erst dann ist er sich sicher, dass der Computer auch aus ist.

Ich habe vorhin versucht den PC schneller zu machen, in dem ich die weiter oben erwähnten Werte in der Registry ändere, aber leider ohne Erfolg.
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Windows in 5 Sekunden ausschalten, aber wie?

  Alt 31. Dez 2005, 17:25
Der Recner von meinem vater braucht auch ewig, im Vergleich zu meinem, zum Runterfahren, aber der hat auch mehr Programme in der TNA, als ich zusätzlich Anwendungen installiert.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
PierreB
(Gast)

n/a Beiträge
 
#13

Re: Windows in 5 Sekunden ausschalten, aber wie?

  Alt 31. Dez 2005, 17:30
Anstatt das angesprochene "Super Fast Shutdown" Programm zu benutzen kann man auch gleich auf den Powerknopf drücken, Resultat ist das Gleiche.
Zitat:
Mit dem Programm beendet Windows innerhalb von Sekundenbruchteilen die Arbeit. Alles wird aus dem Speicher geworfen – und der Rechner abgeschaltet. Allerdings ohne Rücksicht auf das Thema Sicherheit zu nehmen. Sollten einzelne Daten noch nicht gespeichert sein, kümmert das Super Fast Shutdown nicht weiter. Eventuell noch nicht gespeicherte Eingaben oder Korrekturen gehen also verloren. Wer Super Fast Shutdown benutzt, sollte sich über diesen Nachteil im Klaren sein.
Quelle: http://www.schieb.de/tipps/result.php?id=427880_2
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#14

Re: Windows in 5 Sekunden ausschalten, aber wie?

  Alt 31. Dez 2005, 17:31
Moin. Schau dir mal AntiSpy XP an. Da gibt es eine Option "Schnelles Herunterfahren aktivieren". Vielleicht reicht das deinem Vater schon aus.

Man liest sich, Stanlay
  Mit Zitat antworten Zitat
Benutzerbild von c113plpbr
c113plpbr

Registriert seit: 18. Nov 2003
Ort: localhost
674 Beiträge
 
Delphi 2005 Professional
 
#15

Re: Windows in 5 Sekunden ausschalten, aber wie?

  Alt 31. Dez 2005, 17:38
Man nehme einen Disassembler ...

Es ruft zum herunterfahren die NT-Native Funktion NtShutdownSystem mit dem Parameter ShutdownNoReboot auf und zum neustarten dasselbe, nur mit dem Parameter ShutdownReboot.

Gute "Headerdateien" für die NT-Native-API findest du hier.

Jedoch bezweifle ich, dass diese Methode gut für einen Computer sein kann ...

ciao, Philipp
Philipp
There is never enough time to do all the nothing you want.
*HABENWILL*
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#16

Re: Windows in 5 Sekunden ausschalten, aber wie?

  Alt 31. Dez 2005, 18:29
Danke c113plpbr, jedoch habe ich keine Ahnung, wie ich die Komponente verwende bzw. wie ich eine Disassembler baue.

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von c113plpbr
c113plpbr

Registriert seit: 18. Nov 2003
Ort: localhost
674 Beiträge
 
Delphi 2005 Professional
 
#17

Re: Windows in 5 Sekunden ausschalten, aber wie?

  Alt 31. Dez 2005, 18:35
Zitat von Mazel:
Danke c113plpbr, jedoch habe ich keine Ahnung, wie ich die Komponente verwende bzw. wie ich eine Disassembler baue.
Musst du das denn?

Einfach die ntapi runterladen, in den Delphi-suchpfad einbinden, dann per
Delphi-Quellcode:
uses
  JwaNative;
ins projekt einbinden, und dann irgendwo im quelltext
NtShutdownSystem(ShutdownNoReboot); schreiben ...

-> gaaanz einfach ...

ciao, Philipp
Philipp
There is never enough time to do all the nothing you want.
*HABENWILL*
  Mit Zitat antworten Zitat
Benutzerbild von mh166
mh166

Registriert seit: 14. Nov 2004
Ort: Chemnitz
443 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#18

Re: Windows in 5 Sekunden ausschalten, aber wie?

  Alt 31. Dez 2005, 18:42
Zitat von phXql:
Nein, Suspend To Disk ist noch langsamer, weil der gesamte inhalt des RAMs auf die Platte geschrieben wird. Suspend to RAM is das schnellste, aber wenn man dann den PC den saft abdreht, is halt blöd, weil dann die daten verloren sind.
Also das will ich jetzt einfach mal als Quatsch dahinstellen! Ich habs gerade noch mal gestoppt, um meine These auch mit statistischen Werten zu belegen:

normal herunterfahren: 24s
Ruhezustand: 11s

Das ganze bei einm Arbeitsspeicher von 512MB und mit nem AMD Sempron 2200+ (1,5GHz). Beide Messungen wurden nach einem Kaltstart gemacht.

Das scheint mir auch ziemlich logisch: 512MB auf die Pladde schreiben braucht halt viel weniger Zeit, als die ganzen Dienste und Anwendungen zu stoppen und normal zu beenden. Denn so muss einfach nur kopiert werden und schon kann der Stecker gezogen werden. Dass der Start dadurch auch beschleunigt wird (45s statt 83s) is dann ja auch nur logisch. Hier muss ja bloß der Schmarn zurückkopiert und die Peripherie aktiviert werden.

mfg, mh166
Tiefgründige Sätze unserer Zeit:
Zitat von Luckie:
Und diesen Token zur Laufzeit zu modifizieren würde bedeuten, dass du zur laufzeit das Token ändern musst.
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#19

Re: Windows in 5 Sekunden ausschalten, aber wie?

  Alt 31. Dez 2005, 19:53
@c113plpbr:

Hab mir nun mal die ntapi geladen, und das alles so gemacht wie du es geschrieben hast. Habs mit einem ButtonClick Ereignis verbunden, jedoch passiert nichts. Muss ich da noch irgend was anderes machen? Ich mühe mich gearde mal durch die jwanative durch, um zu verstehen was da passiert, aber momentan noch ohne erfolg.

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#20

Re: Windows in 5 Sekunden ausschalten, aber wie?

  Alt 31. Dez 2005, 21:15
So, habs nun denke ich geschafft, laufen tut's aber ob es so richtig ist, weiss ich nicht:

Delphi-Quellcode:
uses
 jwaNative;

{$R *.dfm}

function TForm1.ExWindows(const AFlag: Word): Boolean;
var
 vi: TOSVersionInfo;
 hToken: THandle;
 tp: TTokenPrivileges;
 h: DWord;

begin
 Result:=False;
 vi.dwOSVersionInfoSize:=SizeOf(vi);
 If GetVersionEx(vi) then
  begin
   If vi.dwPlatformId = VER_PLATFORM_WIN32_NT then
    begin
     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);
       
       //Hier nun der besondere Teil
       NtShutdownSystem(SHUTDOWNNOREBOOT);

      end;
    end
   Else Result:=ExitWindowsEx(Aflag, 0);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 ExWindows(EWX_SHUTDOWN or EWX_FORCE);
end;

end.
Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 19:22 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