Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi PC herunterfahren (radikal^^) (https://www.delphipraxis.net/99451-pc-herunterfahren-radikal%5E%5E.html)

Innos 12. Sep 2007 13:22


PC herunterfahren (radikal^^)
 
hihi^^

Ich weiß es gibt schon jede menge threads darüber und ich hab auch SuFu genutzt etc...

also mein problem: ich fahre derzeit den pc in meinem prog mit
Delphi-Quellcode:
 ExitWindowsEx(EWX_ShutDown,0);
herunter

natürlich habe ich auch diese privilegien etc etc...
funktioniert auch alles! nur oft habe ich ein programm gestartet, was nicht beendet werden kann. Das heißt, dass dann ein dialog von windows kommt: bla.exe kann nicht beendet werden... und man muss dann auf "sofort beenden" drücken.
Aber wozu ein programm zum automatischen herunterfahren wenn man da noch etwas drücken muss?

Wie kann man also den PC radikal herunterfahren? also dass er einfach die programme beendet ohne rücksicht auf verluste quasi^^

Thx für die hilfe schon ma im vorraus :)

mfg
Innos

Zacherl 12. Sep 2007 13:30

Re: PC herunterfahren (radikal^^)
 
Guck dir mal die native NtShutdown API an. Das ganze ist in 2 Sekunden aus :P

Innos 12. Sep 2007 13:37

Re: PC herunterfahren (radikal^^)
 
mhh hab das mal in der sufu eingegeben kann aba nix zu finden^^
was is denn das genau?

DeddyH 12. Sep 2007 13:55

Re: PC herunterfahren (radikal^^)
 
Versuch es mal mit einer kleinen Ergänzung:
Delphi-Quellcode:
ExitWindowsEx(EWX_ShutDown or EWX_FORCEIFHUNG,0);
Weiteres dazu siehe hier: http://www.swissdelphicenter.ch/de/showcode.php?id=168

turboPASCAL 12. Sep 2007 13:56

Re: PC herunterfahren (radikal^^)
 
Stecker ziehen. :mrgreen:

inherited 12. Sep 2007 13:58

Re: PC herunterfahren (radikal^^)
 
Bringt bei meinem Notebook erst nach ein paar Stunden was :mrgreen:

Innos 12. Sep 2007 14:56

Re: PC herunterfahren (radikal^^)
 
joo^^

habs jetzt so:

Delphi-Quellcode:
     
flags:=EWX_ShutDown+EWX_FORCE; //wobei flags n integer ist
ExitWindowsEx(flags,0);
und es geht :))) soweit^^ wenn das mal versagt nehme ich deine lösung @DeddyH aba ich vermute das ist iwie ähnlich

DeddyH 12. Sep 2007 15:00

Re: PC herunterfahren (radikal^^)
 
Ähnlich, aber nicht gleich. Auf der von mir verlinkten Seite steht der Unterschied.
Zitat:

EWX_FORCE

Die aktiven Prozesse werden zwangsweise und ohne Rückfrage beendet.


EWX_FORCEIFHUNG

Windows 2000/XP: Die aktiven Prozesse werden aufgefordert, sich selbst zu beenden und
müssen dies bestätigen. Reagieren sie nicht, werden sie zwangsweise beendet.
Ich würde die 2. Variante nehmen, um ein einigermaßen sicheres Herunterfahren ohne Datenverlust sicherzustellen.

Innos 12. Sep 2007 15:04

Re: PC herunterfahren (radikal^^)
 
ok ok ich änder es^^ :thumb: :thumb:

Dax 12. Sep 2007 15:04

Re: PC herunterfahren (radikal^^)
 
Merkregel Nr. 1 bei der Arbeit mit Bitmasken: nie nie nie den Additionsoperator benutzen! Wenn du Bitmasken durch die Gegend schiebst, musst du immer or statt + und and not statt - verwenden. Stell dir vor, die Maske A enthält 0011 und die Maske B entählt 0001. A + B ist 0100, während A or B 0011 ergibt, das gewünschte Ergebnis. Genauso ergibt B - A 1110 statt dem gewünschten Ergebnis 0000.

DeddyH 12. Sep 2007 15:12

Re: PC herunterfahren (radikal^^)
 
Richtig, lies Dir mal mein Tutorial dazu durch.

Innos 13. Sep 2007 15:40

Re: PC herunterfahren (radikal^^)
 
ui :shock: :shock: schwere kost^^ das stößt bei meinem schul informatik an grenzen xD
hab aber alles verstanden nach ner weile :thumb:
bin jetzt um EINIGES schlauer... und SEHR beeindruckt :D weil mich hat immer gestresst, dass ich meine Boolean dinger nie voneinander "abziehen" kann...

also fetten respekt an dich, DeddyH :D :mrgreen: :mrgreen:

also heißt das in meinem beispiel:

Delphi-Quellcode:
flags:=EWX_ShutDown or EWX_Force;
aber dank DeddyH hab ich ja eh

Delphi-Quellcode:
//ExitWindowsEx(EWX_ShutDown or EWX_FORCEIFHUNG,0);
was ich aber nicht verstehe ist: wozu is nu der binär operator "and" gut? in deinem Tutorial wird sozusagen Addiert und Subtrahiert nur was gibts noch wofür man "and" braucht?^^ denn "and" wird nie sinnvoll benutzt

DeddyH 13. Sep 2007 15:46

Re: PC herunterfahren (radikal^^)
 
Dann hast Du nicht aufmerksam gelesen ;). AND wird benutzt, um festzustellen, ob ein Bit gesetzt ist.
Delphi-Quellcode:
if (Zahl and Flag) > 0 then ...

Innos 13. Sep 2007 15:47

Re: PC herunterfahren (radikal^^)
 
aso beim auswerten^^ ja sry kann mir soviel neues nich so schnell merken :gruebel:

mirage228 13. Sep 2007 15:48

Re: PC herunterfahren (radikal^^)
 
Zitat:

Zitat von DeddyH
Dann hast Du nicht aufmerksam gelesen ;). AND wird benutzt, um festzustellen, ob ein Bit gesetzt ist.
Delphi-Quellcode:
if (Zahl and Flag) > 0 then ...

Besser:
Delphi-Quellcode:
if (Zahl and Flag) = Flag then ...
mfG
mirage228

DeddyH 13. Sep 2007 15:50

Re: PC herunterfahren (radikal^^)
 
Die Alternative steht auch im Tut ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:26 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-2025 by Thomas Breitkreuz