Fenster schwarz nach Standby

Anfängerfragen zum Programmieren mit PureBasic.
Re42
Beiträge: 91
Registriert: 08.11.2020 23:41

Fenster schwarz nach Standby

Beitrag von Re42 »

Hallo zusammen, mein Programm läuft, aber es gibt trotzdem folgendes Problem: Wenn ich das Programm eine Weile nicht anrühre, geht Windows in den Standby-Modus und nach dem Wiederaufwecken ist dann die Oberfläche (WindowedScreen) schwarz. Wie kann ich ich das verhindern? Ich habe auch schon ausgiebig die Suchmaschine bemüht, aber nicht gefunden, was ich brauche. Danke für Info!
Benutzeravatar
HeX0R
Beiträge: 2954
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2
Kontaktdaten:

Re: Fenster schwarz nach Standby

Beitrag von HeX0R »

Du musst Deine Initialisierungsroutine auslagern und neu aufrufen, sobald Deine App wieder den Focus hat.
Weil Windows alle Sprites deinitialisiert.
Re42
Beiträge: 91
Registriert: 08.11.2020 23:41

Re: Fenster schwarz nach Standby

Beitrag von Re42 »

Vielen Dank, aber ich kann damit leider überhaupt nichts anfangen. Was meinst Du mit "auslagern"? Ich bräuchte einen Event, der in der Repeat-Schleife abfragbar ist und über den man dann das InitSprite() nochmal auslösen könnte. Was für ein Event kommt denn da an, wenn man Windows aus dem Standby wieder reaktiviert? Weißt du das? Danke für weitere Tipps.
Benutzeravatar
jacdelad
Beiträge: 341
Registriert: 03.02.2021 13:39
Computerausstattung: Ryzen 5800X, 108TB Festplatte, 32GB RAM, Radeon 7770OC
Wohnort: Riesa
Kontaktdaten:

Re: Fenster schwarz nach Standby

Beitrag von jacdelad »

PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Benutzeravatar
HeX0R
Beiträge: 2954
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2
Kontaktdaten:

Re: Fenster schwarz nach Standby

Beitrag von HeX0R »

Es geht nicht um InitSprite, sondern um alle Sprites, etc., die Du evtl. geladen oder erstellt hast.
Bei FullScreen Apps passiert das sogar duch ein simples Alt-Tab, hier gibt's auch ne Erklärung.

Mal ne blöde Frage:
Deine App läuft also unbeaufsichtigt für ewige Zeiten?
Wieso brauchst Du dann einen WindowedScreen?
Re42
Beiträge: 91
Registriert: 08.11.2020 23:41

Re: Fenster schwarz nach Standby

Beitrag von Re42 »

Ich verwende WindowedScreen() weil man ja nicht direkt auf ein Fenster zeichnen soll. Wenn man das Fenster verschiebt, wird ja sonst ganz schnell alles weggewischt. Ansonsten arbeite ich auch mit IncludeBinery. Ich programmiere halt hausbacken, aber von Windows-Wissenschaft habe ich keine Ahnung.

Es gibt ja diese riesige und wirklich exzellente Anleitung für PureBasic, aber zu dem Thema, was ich hier jetzt angeschnitten habe, steht da scheinbar auch nichts drin. Wo lernt man sowas? Mir war mittlerweile klar, daß meine Überlegung mit dem nochmal IntiSprite() falsch war.

Danke auch an Jacdelad, aber den Programmierstil kann ich nicht.
Benutzeravatar
HeX0R
Beiträge: 2954
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2
Kontaktdaten:

Re: Fenster schwarz nach Standby

Beitrag von HeX0R »

Wenn Du auf ein Fenster "malen" möchtest, nimm lieber ein normales Fenster (also keinen WindowedScreen) und ein CanvasGadget
Dann brauchst Du Dir über den ganzen Mist gar keine Gedanken machen und kannst trotzdem auf Deinem Fenster, bzw. auf dem Canvas, rummalen.

Vielleicht kannst Du ja mal Deine Oberfläche vorstellen, per Code, oder auch per Screenshot, dann kommt sicherlich ein fleissiges Helferlein um's Eck und zeigt Dir eine elegantere Methode.

Ach ja, wo man das lernt?
Meistens ist es learning by doing, über das Problem bin ich auch mal gestolpert, als ich ein Spiel gebastelt hatte, was ungewöhnlich genug ist :mrgreen:
Re42
Beiträge: 91
Registriert: 08.11.2020 23:41

Re: Fenster schwarz nach Standby

Beitrag von Re42 »

Canvas-Gadget hatte ich tatsächlich noch nie gehört. Danke für den Tipp, aber jetzt das Programm nochmal umzumodeln, habe ich einfach keine Power (auch wegen meiner Nackenschmerzen). Das Programm präsentiert Musiknoten, ist also zum Noten lernen/üben. Hatte gehofft, daß mein Thread-Problem einigermaßen einfach zu lösen wäre.
Benutzeravatar
HeX0R
Beiträge: 2954
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2
Kontaktdaten:

Re: Fenster schwarz nach Standby

Beitrag von HeX0R »

Ich hab das mal eben mit dem OpenWindowedScreen() Beispiel aus der Hilfe getestet.
So wie es ist, gestartet, dann Windows in den Energiesparmodus und wieder zurück => läuft einfach weiter.
Offensichtlich habe ich Blödsinn erzählt, das betrifft dann tatsächlich nur "echte" Screenanwendungen.
Tja dann kann ich leider nicht helfen ohne den Code zu sehen.
Oder zumindest einen kleinen LAUFFÄHIGEN Beispielcode, der das Phänomen zeigt.
Re42
Beiträge: 91
Registriert: 08.11.2020 23:41

Re: Fenster schwarz nach Standby

Beitrag von Re42 »

Ich stelle evtl. später mal einen lauffähigen Code hier ein. Das Problem tritt bei mir in der Tat in Zusammenhang mit dem Energiesparmodus auf. Mein Code ist in der Tat anders aufgebaut als in dem Beispiel, aber wenn ich versuche, das zu ändern, kommen ständig Fehlermeldungen. Ich werde VIEL Zeit brauchen, die ich jetzt natürlich erstmal nicht habe. Danke nochmals.
Zuletzt geändert von Re42 am 02.02.2022 13:04, insgesamt 1-mal geändert.
Antworten