Fehler: SystemParametersInfo mit SPI_GETSCREENSAVEACTIVE gibt immer True zurück in Windows 2000

Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 318781
Problembeschreibung
Ein Aufruf der SystemParametersInfo -Funktion mit dem UiAction-Parameter SPI_GETSCREENSAVEACTIVE gibt True zurück, obwohl kein Bildschirmschoner aktiv ist.
Lösung
Sie können dieses Problem umgehen, indem Sie durch Abfragen der Registrierung überprüfen, ob der Bildschirmschoner aktiv ist. Das Vorhandensein der Datei Scrnsave.exe unter dem Registrierungsschlüssel HKCU\Control Panel\Desktop gibt an, dass der Bildschirmschoner aktiv ist.

Der folgende Code veranschaulicht dies:
HKEY hKeySreenSaver = NULL;long lReturn = NULL;long lScreenSaver = NULL;DWORD dwData = NULL;	lReturn = RegOpenKeyEx(HKEY_CURRENT_USER,			TEXT("Control Panel\\Desktop"),			0,			KEY_QUERY_VALUE,			&hKeySreenSaver);if(lReturn == ERROR_SUCCESS){	lScreenSaver = RegQueryValueEx(hKeySreenSaver, 				   TEXT("SCRNSAVE.EXE"),				   NULL,				   NULL,				   NULL,				   &dwData);	if(lScreenSaver == ERROR_SUCCESS)		MessageBox(NULL, 			   "Screen Saver is Active", 			   "Screen Saver",			   MB_OK);			else		MessageBox(NULL, 			   "Screen Saver is Not Active", 			   "Screen Saver",			   MB_OK);	}RegCloseKey(hKeyScreenSaver);hKeyScreenSaver = NULL;				
Status
Microsoft hat bestätigt, dass dieses einen Fehler in Microsoft-Produkten, die zu Beginn dieses Artikels aufgeführt sind.
Weitere Informationen

Schritte zum Reproduzieren des Verhaltens

  1. Den Bildschirmschoner wird auf Nonefestgelegt:

    Klicken Sie im Startmenü auf Systemsteuerung, doppelklicken Sie auf Anzeige, klicken Sie auf der Registerkarte Bildschirmschoner und wählen Sie keine im Bildschirmschoner .
  2. Rufen Sie SystemParametersInfo -Funktion der UiAction -Parameter auf SPI_GETSCREENSAVEACTIVEfestgelegt.
    bool result = false;SystemParametersInfo(SPI_GETSCREENSAVEACTIVE,0,(LPVOID)&result,0);					
Beachten Sie, dass der Wert des Ergebnisses auf True festgelegt ist, auch wenn kein Bildschirmschoner aktiv ist.

Warnung: Dieser Artikel wurde automatisch übersetzt.

Eigenschaften

Artikelnummer: 318781 – Letzte Überarbeitung: 01/02/2016 04:16:00 – Revision: 2.0

  • kbbug kbnofix kbmt KB318781 KbMtde
Feedback