找不到指定的模块(卸载)

Twi*_*rin 5 uninstall windows-7

我使用的是 Windows 7 x64 版本,有时当我安装旧程序(使用 x86 代码库)时,尝试使用程序和功能卸载它时会出现此错误:

RunDLL  
There was a problem starting C:\Program  
The specified module could not be found
Run Code Online (Sandbox Code Playgroud)

我想是卸载程序找不到路径,但我该如何解决?请不要建议使用第 3 方解决方案。只想知道是什么原因造成的以及如何解决。

Ind*_*rek 6

如果程序的卸载程序位于 中Program Files,但安装程序在将位置存储在注册表中时未能在路径周围加上引号,则可能会发生这种情况。结果是 Windows 尝试执行 (例如) C:\Program Files\ProgramName\uninstall.exe,但没有引号,它将被C:\Program视为可执行文件名称和Files\ProgramName\uninstall.exe命令行参数。

要解决此问题,请尝试以下步骤:

  • 打开 regedit.exe
  • 导航 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
  • 找到与您要卸载的程序对应的密钥。大多数程序可能会按其 GUID 列出,因此要么逐一浏览它们,要么转到“编辑”->“查找”以搜索您的程序。
  • 在右侧窗格中,查找名为UninstallString的值。双击它并在路径周围加上引号。只是路径(从C:\......exe),而不是可能跟随它的任何参数。如果有疑问,请在此处发布当前值。
  • 再次尝试卸载该程序。如果还是不行,把UninstallString的原始值贴在这里。
  • 可选:检查程序作者的网站以获取正确存储其卸载程序信息的更新版本。

从理论上讲,您也可以将程序的卸载程序(假设它是 .exe 并且您可以找到它)复制到C:\并将其重命名为Program.exe,但我不确定这是否可行。您还可以使用UninstallPath的更正版本并将其保存到名为 的批处理文件中C:\Program.bat,这可能会起作用,但仍然是比上述更麻烦的解决方案。为了完整起见,我只列出这些方法。

  • 请记住,对于 64 位系统上的 32 位应用程序,它们将列在“HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall”下 (3认同)