ポップアップ ウィンドウのテキスト キャプションの一意性に応じて、多かれ少なかれ信頼できる回避策でこの問題を解決しました。
を使用してすべてのトップレベル ウィンドウをスキャンしEnumWindows()
、 を使用してキャプションを取得し、キャプションをGetWindowText()
プログラムの起動時に提供されるパターンと比較し、一致した場合は ( を使用してPostMesssage()
)WM_CLOSE
をこのウィンドウにポストします。
このプロセスは、T ミリ秒ごとに繰り返されます。
このプログラムは、OLE サーバーを作成するプロセスと並行して実行され、不要なポップアップを開き、T ミリ秒後にそれらを閉じます。
1000 ミリ秒ごとに実行すると、目に見えるシステム負荷は表示されません。
VC10 を使用すると、バイナリは非常に軽量 (<8k) で、唯一の依存関係はmsvcr100.dll
です。後者がバイナリ自体と同じディレクトリに置かれている場合、セットアップは必要ありません。私はそれをwin7で構築し、win2kとwin2k3でシームレスに動作します... :-)
このソリューションのソース (および VC10 ソリューション/プロジェクト ファイル) は、https ://github.com/ealk/wd にあります。