Programm/Aktion starten VOR dem runterfahren des Rechners ?

Anfängerfragen zum Programmieren mit PureBasic.
xverbatim
Beiträge: 88
Registriert: 20.08.2005 20:19

Programm/Aktion starten VOR dem runterfahren des Rechners ?

Beitrag 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
Marvin
Beiträge: 497
Registriert: 17.07.2005 14:42
Wohnort: Krikkit

Beitrag 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.
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von sen-me »

Ich habe zwar keine Ahnung davon aber ich glaube zu hast nur das schließen des Programms abgefragt oder?
Bild
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag 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?
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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 ?
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

im codearchiv sind gute beispielcodes. ( http://www.purearea.net
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Antworten