アプリケーションを最小化し、現在のデスクトップのスクリーンショットを撮り、アプリケーションを元の状態に戻したい。
これはWindowsXPでは正常に機能していますが、さまざまなVistaマシンでのテストでは、200ミリ秒の最小化時間は無効になっています。
これらの派手な効果がいつ終了したかをオペレーティングシステムに尋ねたり、操作を実行するために与えられた時間を調べたりする方法はありますか?
アプリケーションを最小化し、現在のデスクトップのスクリーンショットを撮り、アプリケーションを元の状態に戻したい。
これはWindowsXPでは正常に機能していますが、さまざまなVistaマシンでのテストでは、200ミリ秒の最小化時間は無効になっています。
これらの派手な効果がいつ終了したかをオペレーティングシステムに尋ねたり、操作を実行するために与えられた時間を調べたりする方法はありますか?
あなたが求めていることを実行する方法はわかりませんが、提案があります。アプリケーションのウィンドウを最小化する代わりに、(ShowWindow(SW_HIDE) を使用して) 非表示にしないでください。これはアニメーション効果の影響を受けないため、ほぼ瞬時に行われるはずです。
代わりに、デスクトップを最前面に表示する必要がありますか?
私が見つけることができる最も近いものは SPI_GETUIEFFECTS で、そのような効果が有効になっているかどうかを示します。
有効になっている場合は、もちろん SPI_SETUIEFFECTS を使用して無効にすることができます。しかし、それはかなりショットガンな方法です。どのように復元しますか? 最も気になるものは一時的にオフにしたほうがよいでしょう。