Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 浏览器正在锁定我的IE插件_C# - Fatal编程技术网

C# 浏览器正在锁定我的IE插件

C# 浏览器正在锁定我的IE插件,c#,C#,我有一个用C#编写的IE插件。在任何时刻,用户都会运行卸载程序或更新程序来重写或删除插件的文件 要在IE上注销插件,我必须为我的文件运行regasm/u,但文件仍然被锁定(加载),在重新启动计算机之前,我无法删除它 实际上,资源管理器进程正在锁定文件。如果我杀死浏览器进程,我将能够删除该文件 你知道我如何删除或重写该文件而不终止explorer的进程或重新启动机器吗 谢谢重命名旧文件并编写新文件。当您注册IE插件时,在BHO键中放置一个REG_DWORD设置为1,名称='NoExplorer'(

我有一个用C#编写的IE插件。在任何时刻,用户都会运行卸载程序或更新程序来重写或删除插件的文件

要在IE上注销插件,我必须为我的文件运行regasm/u,但文件仍然被锁定(加载),在重新启动计算机之前,我无法删除它

实际上,资源管理器进程正在锁定文件。如果我杀死浏览器进程,我将能够删除该文件

你知道我如何删除或重写该文件而不终止explorer的进程或重新启动机器吗


谢谢

重命名旧文件并编写新文件。

当您注册IE插件时,在BHO键中放置一个REG_DWORD设置为1,名称='NoExplorer'(假设它是BHO扩展名),例如HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects{your guid}


这会告诉资源管理器仅从IE中加载扩展名,而不是从Explorer.exe中加载扩展名。

我无法重命名该文件,因为它已被资源管理器进程锁定。在这种情况下,您可能需要使用某种技术,使Windows在重新启动时执行此操作。但我不记得怎么做了。我们现在正在做这个,它是一个“运行一次”注册表项。我们试图避免重新启动,因为这是我们软件的无声更新。谢谢你的帮助!谢谢@Rory!对于未来的查看者:如果您的BHO被
explorer.exe
锁定(因为忘记了
NoExplorer
条目),请尝试从注册表中删除它的所有痕迹并重新启动。如果一开始你没有成功,那就再试一次。我不得不这样做两三次
explorer.exe
即使重新启动3次以上,仍然拥有我的DLL。希望这能帮你省下几分钟的痛苦!