Scusate se sarò un po' prolisso...
Ho un pc multischermo che su una delle due uscite video manda a ciclo continuo uno slideshow. Quando parte il salvaschermo questo viene visualizzato su entrambi i monitor, cosa ovviamente non gradita. Per questioni legate al DPS ho la necessità che lo screensaver si attivi ma solo sul monitor di servizio, non su quello su cui gira la presentazione. Inizialmente ho cercato soluzioni preconfezionate ma, non trovando nulla di disponibile, ho deciso di programmarlo io stesso.
E qui mi sono imbattuto in un grosso problema.
In realtà limitare il salvaschermo ad un solo monitor non è un problema. Il problema sta nel fatto che se si attiva (cosa necessaria) l'opzione dello screensaver "al ripristino proteggi con password" tutte le finestre dei programmi aperti vengono rese invisibili e sul monitor secondario farà bella mostra di sé solo lo sfondo del Desktop.
Questo fenomeno non si manifesta se lancio il salvaschemo manualmente ma solo quando viene lanciato automaticamente dal sistema "bloccando lo schermo".
La mia idea era quindi quella di riuscire a riattivare in qualche modo la finestra con la presentazione...
Purtroppo le finestre non sono semplicemente rese invisibili (troppo facile...) non è nemmeno possibile una loro enumerazione tramite EnumWindows . In questo stato la finestra del salvaschermo sarà l'unica enumerabile....
Spero di essermi spiegato... qualcuno ha idea di cosa succeda quando windows blocca lo schermo? Se la finestra dello screensaver è visibile a schermo bloccato presumo che possa essere possibile anche per altre finestre... Come posso avere accesso alle finestre a partire dal mio salvaschermo in uno stato in cui lo schermo è bloccato?
Se qualcuno ha anche solo dei suggerimenti per possibili test che possano portare ad una maggiore comprensione del fenomeno...