Come posso rilevare gli effetti di transizione desktop?
-
06-07-2019 - |
Domanda
Voglio minimizzare la mia applicazione, fare uno screenshot del desktop corrente e riportare la mia applicazione al suo stato originale.
Questo ha funzionato bene con Windows XP, tuttavia durante i test su diverse macchine Vista il tempo minimo di 200 millisecondi non è più valido.
C'è un modo per chiedere al sistema operativo quando ha terminato questi effetti fantasiosi o cercare quanto tempo è stato dato per eseguire l'operazione?
Soluzione
Il più vicino che riesco a trovare è SPI_GETUIEFFECTS, che ti dice se tali effetti sono abilitati.
Se abilitato, puoi ovviamente usare SPI_SETUIEFFECTS per disattivarli. Ma questo è un metodo piuttosto fucile da caccia: come li ripristineresti? Probabilmente è meglio disattivare temporaneamente quelli che ti infastidiscono di più.
Altri suggerimenti
Anche se non conosco un modo per fare ciò che chiedi, ho un suggerimento: invece di ridurre a icona la finestra della tua applicazione, perché non nasconderla (con ShowWindow (SW_HIDE))? Ciò non sarà soggetto agli effetti di animazione, quindi dovrebbe essere praticamente istantaneo.
Forse invece minimizzando dovresti portare il desktop in primo piano?