Läuft der Bildschirmschoner?



  • Hallo,
    wie kann ich herausfinden, ob der Bildschirmschoner gerade läuft oder eben nicht läuft?

    BOOL bRunning = FALSE;
    SystemParametersInfo(SPI_GETSCREENSAVERRUNNING,  0, (PVOID) &bRunning, false);
    if (bRunning) {
    	MessageBox(NULL, "!!!", "!!!", NULL);
    	// ...
    }
    else {
    	// ...
    }
    

    Leider macht dieser Code rein gar nichts. Es gibt keine Compilerfehler, aber auch die gewünschte Meldung erscheint nicht...

    Ich benutze Windows XP

    Vielen Dank im Voraus,
    Screeny



  • Der Code zur Abfrage ist korrekt, allerdings ist der Bildschirmschoner in dem Moment, wo dein Programm gestartet wird, garantiert nicht aktiv - schließlich siehst du den Start deinen Programms. Du könntest mit dem Parameter SPI_GETSCREENSAVEACTIVE abfragen, ob überhaupt ein Schoner läuft, dann dein Programm z.B. mittels Sleep() in einen 15-minütigen Tiefschlaf versetzen und dann den Status abfragen.



  • Hallo,
    ich frage in einer Endloscschleife ab, ob der Bildschirmschoner läuft.
    Das Problem scheint ein anderes zu sein 😞

    Kann mir denn keiner helfen? Es gibt aufejdenfall irgendeinen Bug, das habe ich in der MSDN schon gelesen, aber irgendwie enden die "Lösungen" immer auf eine Seite die nicht existiert...

    Brauche echt Hilfte 🙂

    Vielen Dank,
    Screeny



  • Keiner eine Idee?



  • Note that only the interactive window station, WinSta0, can have a screen saver running.

    Dein Programm ist nicht zufällig ein Service?


Anmelden zum Antworten