Leider nein. Trotzdem Danke.
Grundsätzlich soll der Bildschirmschoner ja laufen. Er soll meine "Bildschirme schonen", wie der Name schon sagt. Und da mein Programm ähnlich einem Service immer mitläuft, will ich daran nichts ändern. Ich möchte ihn weder ganz ausschalten, noch beim Start (TMessage.Result) unterdrücken.
Ich habe auch bei meinen Tests festgestellt, dass
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 0, nil, 0);
einen einmal laufenden Bildschirmschoner eben nicht beendet. Wäre auch zu einfach und schön gewesen
Ich möchte ihn lediglich kurz unterbrechen. Meinetwegen auch beenden, da er nach Ablauf einer bestimmten Zeit ohnehin wieder startet. Die Idee mit dem WM_Close gefiel mir daher. Evtl. könnte man über die vom Systemgelieferte Start-Message auch das
Handle merken und dann einfach das schließen?
Ist jemandem bekannt, ob bei Msg.wParam = SC_SCREENSAVE das
Handle in einem der Record-Variablen mitgeliefert wird? Ich kann das schlecht ausprobieren, da spätestens bei meiner Interaktion der Schoner beendet wird, ich aber auch nicht wild irgend etwas schließen möchte.
Gruß, Alex