アプリケーションが、MessageBoxをポップするサードパーティのDLLを読み込みます。 MessageBoxが開いているときにexit(0)を使用できないことがあることに気付きました。MessageBoxによってアプリケーションが終了しないようにします
このような場合には、どうすれば強制的に存在することができますか?
おかげ
アプリケーションが、MessageBoxをポップするサードパーティのDLLを読み込みます。 MessageBoxが開いているときにexit(0)を使用できないことがあることに気付きました。MessageBoxによってアプリケーションが終了しないようにします
このような場合には、どうすれば強制的に存在することができますか?
おかげ
あなたの醜いDLLのように見えます。は、DLL_THREAD_DETACH
またはDLL_PROCESS_DETACH
の中からMessageBox
(または何でも)を呼び出します。
これは、同じスレッド(すなわち、スレッドの呼び出しexit
)に発生した場合、あなたは右前にアプリケーションの終了PostQuitMessage
を呼び出すようにしようとします。これにより、メッセージループが中止されます。これが別のスレッドで発生した場合はPostThreadMessage
に電話することができます。
また、適切なモジュール(Exe/Dll)インポートテーブルをフックすることで、Win32 API関数の呼び出しをインターセプトするオプションもあります。 J.Richterによって発明されました(私が正しく覚えていれば)。 http://www.player.idv.tw/prog/index.php/APIHook
+1クリーンなソリューション! –
環境保護OS? –
申し訳ありませんが、Windows Vista以降 – kambi