Seite 1 von 1

Programm/Aktion starten VOR dem runterfahren des Rechners ?

Verfasst: 14.12.2006 15:18
von xverbatim
Hi,


gibt es eine Möglichkeit, aus meinem Purebasicprogramm heraus das Herunterfahren des Rechners abzufangen um beispielsweise eine Nachricht auszugeben und erst dann den Rechner runterfahren?


Für Tipps + Code wäre ich sehr dankbar ....


Gruß XVERBATIM

Verfasst: 14.12.2006 16:36
von Marvin
Man kann das ganze einfach über ein Callback realisieren:

Code: Alles auswählen

Procedure WindowCallback(hwnd,msg,wParam,lParam)
  If msg=#WM_QUERYENDSESSION
    ;Nachricht ausgeben
    ProcedureReturn #True ;Das Herunterfahren zulassen, bei Nichtzulassung einfach #False
    ;Achtung! Bei zulanger #False-Rückgabe nimmt Windows an, dass dein
    ;Programm nicht mehr reagiert!
  EndIf
  ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
Das funktioniert aber nicht bei einem Force-Shutdown, bei dem werden alle Prozesse einfach beendet.

Verfasst: 14.12.2006 17:20
von sen-me
Ich habe zwar keine Ahnung davon aber ich glaube zu hast nur das schließen des Programms abgefragt oder?

Verfasst: 14.12.2006 17:24
von a14xerus
ich kenne mich damit auch nicht so aus, aber #blablab..ENDSESSION ist eigentlich abmelden (bzw ausschalten), also wird es schon das richige sein, oder?

Verfasst: 14.12.2006 17:53
von ts-soft
Das Callback ist schon richtig, aber bitte niemals 0 oder #False zurückgeben,
könnte sonst sein, das ihr den Stecker ziehen müßt :mrgreen:
Die Zeit um was zu tun ist sehr beschränkt, wenn schnelles herunterfahren
aktiviert ist, noch beschränkter. Sollte nur zum schnellen speichern kl.
Dateien verwendet werden.

Verfasst: 14.12.2006 18:09
von AND51
Das sehe ich nicht so. Es muss doch eine möglichkeit geben, den Vorgang so lange anzuhalten oder zu unterbrechen, wie man will. WIndows media Center fragt beim Herunterfahren ja auch: "Wenn Sie jetzt herunterfahren, wid die aktuelle Aufnahme beendet."

Da fährt nix runter, solange ich den MessageRequester nicht anklicke... (OK, es sei denn, man beendet Prozesse zwingend beim Herunterfahren)

Aber wie ?

Verfasst: 14.12.2006 18:45
von ts-soft
>> Da fährt nix runter, solange ich den MessageRequester nicht anklicke...
Dein Programm macht aber auch nichts :mrgreen:
Wenn man an der falschen Stelle 0 zurückgibt, beendet Win nicht mehr!

Verfasst: 14.12.2006 19:20
von PureBasic4.0
im codearchiv sind gute beispielcodes. ( http://www.purearea.net