Für Windows gilt noch zu beachten das, falls aktiviert, ein Bildschirmschoner nicht per SetThreadExecutionState() "überbrückt" wird.
Wie PowerSave das regelt weiß ich nicht, ich habe mir eine simple Routine gebaut dir mir einen Registrierungswert vorübergehend abändert. Interessanter Weise ist der Wert eine Null bzw eine Eins aber als String geschrieben.
Es gibt glaube ich auch ein
Api Befehl speziell dafür, nur liegt der mir gerade nicht vor.
(HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaveActive = "0" oder "1")