2011-01-11 64 views

回答

2

如果推動推動,您可以啓動一個線程,使用WinAPI或庫以標題形式打開任何打開的窗口。

我會採取較不苛刻的機制,比如首先更改dll或將更改請求發送給合適的人員。

1

如果這是第三方DLL,沒有好的選擇來擺脫消息框。

但是,由於C#編譯爲IL,因此您可以查看字節代碼並刪除對MessageBox.Show的調用或將其替換爲對Trace.WriteLine的調用。你可以這樣做,例如使用SDK附帶的ildasm.exe/ilasm.exe工具。

0

你可以使用十六進制編輯器,調試器或某些資源查看器來研究該dll,以瞭解如何創建對話框,然後訂閱該Windows事件(如OnCreate - 在WinAPI文檔中獲取有關Windows創建功能的信息)。在事件處理程序試圖壓制對話框,查看是否DLL函數是感到高興的對話框沒有顯示

0

的事實。如果您的DLL託管代碼,你可以反編譯,並刪除MessageBox的調用,比如0xA3執行建議。如果你的dll是原生的,你可以使用API hooking。 WinAPI掛鉤示例,您可以找到here。它使用C++,但可以輕鬆轉換爲C#。

相關問題