Windows 资源管理器在 Vista 64 上以 32 位模式显示不同的第三方上下文菜单

Windows 资源管理器在 Vista 64 上以 32 位模式显示不同的第三方上下文菜单

我有几个第三方应用程序,它们将其操作添加到通过在 Windows 资源管理器中右键单击文件即可启用的菜单中。这些工具包括 TortoiseSVN。

它通常可以正常工作,但有些应用程序会打开没有这些菜单的 Windows 资源管理器窗口。例如,使用 从 Cygwin 启动 Windows 资源管理器窗口explorer . &,或在 Eclipse 中使用“浏览文件”操作会导致这种情况。

这是 Vista 中的错误吗?我能做些什么来让 Windows 资源管理器的行为保持一致?

澄清编辑:

事实上,经过仔细检查,似乎确实如此不同的菜单图标的显示取决于调用模式。例如,“Unlocker”应用程序仅在“衍生”版本中显示,而 Tortoise 和 DiffMerge 图标则显示在直接启动的版本中。

在我的计算机上,“正常”的 Windows 资源管理器窗口应该是这样的。这是使用 WinKey-E 快捷键打开的,或者从 DOS 命令 shell 调用的:

替代文本

从 Cygwin 启动时,它看起来是这样的(检查同一目录中的同一个文件):

替代文本

澄清编辑2:

从 Eclipse 和 Cygwin 启动时我观察到以下差异:

  • TortoiseSVN 和 TortoiseGIT 图标覆盖不显示
  • 使用 Notepad++ 编辑的内容不显示
  • TortoiseSVN 和 TortoiseGIT 菜单不显示
  • DiffMerge 菜单不显示
  • 橡皮擦菜单不显示
  • 7Zip 菜单不显示
  • 解锁菜单出现

据我回忆,当我发现此问题时,这些应用程序中仅安装了 Notepad++ 和 TortoiseSVN,以及 KDiff3(我后来卸载了 KDiff3 上下文菜单以尝试对其进行故障排除)。

此外,这可能与我使用的是 64 位 Vista 有关。

更新 3:

感谢 Greech 的建议,我安装并运行了 ShellExView,包括 32 位和 64 位版本。正如我猜测的那样,这两个版本看到的可用设置项不同。

以下是 ShellExView 32 位和 ShellExView 64 位的屏幕截图。它们仅限于所有非 Microsoft 条目。

(在新标签/窗口中打开图片即可查看完整尺寸)

32 位:

替代文本

64 位:

替代文本

因此,问题简化为:当 Windows 资源管理器生成时来自 32 位应用程序它获得的菜单与从 64 位启动时不同。为了确认这一点,我使用 启动了一个 32 位命令提示符%windir%\SysWoW64\cmd.exe,并在其中启动explorer .。正如预期的那样,32 位应用程序菜单是可见的。

结论

是的,问题是我在 64 位操作系统上运行 32 位 Eclipse,它会生成 32 位版本的 Windows 资源管理器,而该资源管理器没有挂接我的 64 位 TortoiseSVN/TortoiseGIT 菜单。解决方案是并排安装 32 位 Tortoise 版本,如TortoiseSVN 下载页面

x64 用户请注意:您可以同时安装 32 位和 64 位版本。这样 32 位应用程序也能使用 TortoiseSVN 功能。

非常感谢 Arjan 提出正确的问题,也感谢 Greech 建议使用关键工具来诊断潜在问题。我将接受 harrymc 的答案,因为它实际上最接近潜在答案,而且我认为没有办法分享赏金,但我想让你们知道,你们的帮助至关重要。

答案1

以下线程处理了类似的问题:Vista 64 位中的 HgTortoise 不显示上下文菜单

在那里,接受的答案是在 Vista 64 位上运行 32 位 Windows 资源管理器的方法,使用以下命令:

%Systemroot%\ SysWOW64 \ explorer.exe /单独

该帖子后来的更新是这样的:

更新:TortoiseHg 0.8(发布于 2009-07-01)现在在安装程序中包含 32 位和 64 位 shell 扩展,并且也适用于 Windows 7。下面描述的解决方法不再需要。

所以您的问题似乎是某些产品只安装一个版本的扩展,要么是 32 位,要么是 64 位。这是正常的,因为 32 位 shell 扩展无法加载到 64 位 Windows 资源管理器中,反之亦然。

那么解决方案就是,对于每个这样的产品,找到缺少的 shell 扩展 32/64 位版本并将其安装在适当的环境中。

答案2

如果我的这个建议只是显示出我的无知,我深感抱歉,但这确实是出于好意。

如果你去尼尔软件看看名为ShellEx 视图,在他的免费软件系统工具下,它可能会有所帮助:

Shell 扩展是进程内 COM 对象,用于扩展 Windows 操作系统的功能。大多数 shell 扩展由操作系统自动安装,但也有许多其他应用程序会安装额外的 shell 扩展组件。例如:如果您在计算机上安装了 WinZip,则右键单击 Zip 文件时会看到一个特殊的 WinZip 菜单。此菜单是通过向系统添加 shell 扩展创建的。

ShellExView 实用程序显示您的计算机上安装的 shell 扩展的详细信息,并允许您轻松禁用和启用每个 shell 扩展。

ShellExView 可用于解决 Explorer 环境中的上下文菜单问题。有关更多信息,请阅读以下文章:上下文菜单处理程序导致右键单击速度缓慢或行为怪异

相关内容