私はC#winformsアプリケーションと一緒に作業しています。私は自分のプロジェクトでそのDLLからその関数を呼び出すときにdllです。それから不要なMessageBoxを取得します。そのMessageBoxをブロックすることは可能ですか?既存のDLLからメッセージボックスをブロックすることは可能ですか?
2
A
答えて
2
プッシュが押されると、WinAPIまたはライブラリを使用して、開いているウィンドウをタイトルで抹消するスレッドを起動できます。
私は、dllを最初に変更したり、適切な人に変更要求を出すようなあまり厳しいメカニズムに頼っています。
1
サードパーティ製のdllの場合、メッセージボックスを削除するいい選択肢はありません。
ただし、C#がILにコンパイルされているため、バイトコードを表示してMessageBox.Show
への呼び出しを削除するか、Trace.WriteLine
の呼び出しで置き換えます。あなたはこれを行うことができます。 SDKに付属のildasm.exe
/ilasm.exe
ツールを使用します。
0
このDLLは、ヘキサエディタ、デバッガ、またはリソースビューアで調べて、ダイアログボックスの作成方法を調べ、そのWindowsイベントに登録することができます(Windows作成関数に関するOnCreate - surf WinAPIドキュメントのように)。あなたのイベントハンドラでダイアログボックスを抑制して、ダイアログが表示されないという事実についてdll関数が満足しているかどうか確認してください。
0
dllがマネージコードの場合、それを逆コンパイルして0xA3あなたのDLLがネイティブの場合は、API hookingを使うことができます。 WinAPIフックの例はhereです。これはC++で書かれていますが、C#に簡単に翻訳できます。
ライセンスのダイアログですか? –