【发布时间】:2010-03-29 12:48:32
【问题描述】:
我在 C# 中创建了一个 Windows 资源管理器工具栏。卸载我的应用程序时删除了此工具栏,但在取消注册后仍会显示(缓存在 explorer.exe 中)。 explorer.exe 需要重新启动才能使工具栏消失。如何通过 C# 代码解决此问题?
【问题讨论】:
-
你不应该在 .NET 中编写扩展
标签: c# toolbar windows-explorer
我在 C# 中创建了一个 Windows 资源管理器工具栏。卸载我的应用程序时删除了此工具栏,但在取消注册后仍会显示(缓存在 explorer.exe 中)。 explorer.exe 需要重新启动才能使工具栏消失。如何通过 C# 代码解决此问题?
【问题讨论】:
标签: c# toolbar windows-explorer
如果不要求用户注销,真的没有办法干净地做到这一点。
如果有关闭工具栏的程序访问,您可以将一些代码注入每个加载了您的 dll 的资源管理器进程并关闭工具栏,然后调用 CoFreeUnusedLibraries(仍然有点 hacky,但您不必杀死进程)
【讨论】:
如果工具栏被正确卸载,我不确定资源管理器是否会缓存工具栏。我对这些事情知之甚少,但您确定您没有错过安装程序中的取消注册调用吗?
【讨论】:
foreach(Process p in Process.GetProcesses()){
try{
if(p.MainModule.ModuleName.Contains("explorer") == true)p.Kill();
}
catch(Exception e){}
Process.Start("explorer.exe");
}
试一试。
【讨论】: