2010-11-27 69 views
1

全部問候,防止爲某些應用程序加載C#dll

我有用C#編寫的shell工具欄擴展。它只是用於Windows資源管理器,所以我想阻止DLL在Internet Explorer中加載。 Windows提供了大量的方法來在IE中加載擴展,但似乎沒有辦法只做Explorer。我知道在DLL加載後我可以在不同的地方執行各種檢查,但理想的做法是防止DLL加載。

現在,如果它被寫入C++,我會在DllMain中調用GetModuleFileName,檢查可執行文件是否爲iexplore.exe,如果是,則返回false。但C#中沒有DllMain;微軟不相信我們會玩弄裝載機鎖定。有沒有其他方法可以選擇性地阻止加載C#DLL?

回答

0
+0

不相關......給出建議的原因是在.NET中執行外殼擴展可能導致使用shell對話框的非託管程序出現CLR注入問題。用不同的CLR版本編寫的擴展可能會相互衝突。但這隻與上下文菜單處理程序或可用於shell對話框的其他擴展等相關。工具欄僅由兩個應用程序加載:Windows資源管理器和Internet Explorer。不僅如此,.NET現在支持支持多個CLR版本的內存並行操作,所以現在已經完全過時了。 – 2010-11-27 06:15:36

+0

我沒有意識到它已經過時,謝謝 – Arjang 2010-11-27 06:27:12