Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.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 如何解锁/注销进程使用的dll?_C_Windows_Dll - Fatal编程技术网

C 如何解锁/注销进程使用的dll?

C 如何解锁/注销进程使用的dll?,c,windows,dll,C,Windows,Dll,我有一个应用程序,它有一个dll,当然还有一些文件。在安装过程中,将注册此dll,因此在某些上下文菜单中可以使用其他菜单。如果卸载此应用程序,dll文件将保持锁定状态,这意味着无法删除它。我必须重新启动电脑才能删除此文件 所以我的问题是,有没有可能让一个可以关闭打开的句柄,或者注销dll的应用程序,或者其他需要做的事情,能够在不重新启动的情况下删除这个dll 提前谢谢 在windows shell中的使用 用于注册文件的regsvr32.dll 用于注销文件的regsvr32/u.dll抱歉,我

我有一个应用程序,它有一个dll,当然还有一些文件。在安装过程中,将注册此dll,因此在某些上下文菜单中可以使用其他菜单。如果卸载此应用程序,dll文件将保持锁定状态,这意味着无法删除它。我必须重新启动电脑才能删除此文件

所以我的问题是,有没有可能让一个可以关闭打开的句柄,或者注销dll的应用程序,或者其他需要做的事情,能够在不重新启动的情况下删除这个dll

提前谢谢

在windows shell中的使用 用于注册文件的regsvr32.dll
用于注销文件的regsvr32/u.dll

抱歉,我忘了提到,这不起作用。我假设dll是以其他方式注册的。否则它是如何注册的?您可能有一些进程正在使用DLL。检查任务管理器您的程序或此DLL的任何其他可能使用者是否正在运行。explorer.exe使用该DLL。我可以在process explorer中看到这一点。但我无法关闭explorer.exe。这就是为什么我只想关闭那个句柄或是阻止dll被删除的东西。这很有趣。此DLL是否已注入explorer.exe?它是用来做钩子的吗?我不太清楚。我没有申请。如果您安装了它,您将在桌面上下文菜单中有两个额外的选项。你可以保存和恢复你的桌面图标位置。我的水晶球说这是一个外壳扩展。当然,DLL文件已锁定,因为它已加载到Explorer.exe中。终止资源管理器不是很合理,卸载程序通过使用PendingFileRenameOperations注册表项来完成。打开Process Explorer,按Ctrl+D打开图像视图。然后搜索dll名称。杀死加载它的进程。@Hans:smarter shell extension安装程序/卸载程序/升级程序会关闭并重新启动Explorer,当然不是杀死它。我认为他们使用重启管理器。IIRC,陆龟就是一个例子