長時間実行中またはビジーなプログラム中にWindows 7プログラムのグレーアウトを無効にする


1

サンプル画像

長時間実行されるタスクを実行する古いカスタムアプリケーションがいくつかあります。Windowsの以前のバージョンでは、特定のタスクの実行中にプログラムが応答しなくなりました。UIが更新される場合と更新されない場合があります。

ただし、Windows 7では、UIが応答しなくなると、ウィンドウ全体がグレー表示され、タスクの実行が継続している限りUIは更新されません。

これは不正なコードの結果である可能性があります(長時間実行されるタスク用に個別のプロセスを生成しない)が、それらを変更することはオプションではありません。

Windows 7で応答しない/ビジーなプログラムのグレー表示/フェードアウトを無効にすることはできますか?


デバッガーで実行中のプロセスはゴースト化されません。ミニデバッガーの作成は受け入れられますか?何かのように... CreateProcess(); DebugActiveProcess(); for(;;)WaitForDebugEvent();
デイモン

回答:



1

Windows 7で応答しない/ビジーなプログラムのグレー表示/フェードアウトを無効にすることはできますか?

はい。ただし、アプリケーション自体で実行する必要があります。DisableProcessWindowsGhosting()関数を呼び出す必要があります。明らかに、あなたがその選択をした場合

それらを変更することはオプションではありません

アプリケーションはこの関数を呼び出さず、「ゴースト」が発生します。これは、「ゴースト」と応答しないウィンドウを置き換える応答により、限られたUIの相互作用の数可能窓(移動、最小化、および閉鎖)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.