use*_*756 6 windows windows-vista windows-explorer
我有几个第三方应用程序将它们的操作添加到通过右键单击 Windows 资源管理器中的文件启用的菜单中。这些是 TortoiseSVN 等工具。
它通常工作正常,但某些应用程序打开 Windows 资源管理器窗口,而这些菜单不存在。例如,从 Cygwin 使用 启动 Windows 资源管理器窗口explorer . &
,或在 Eclipse 中使用“浏览文件”操作会导致这种状态。
这是Vista中的错误吗?我可以做些什么来使 Windows 资源管理器的行为始终如一?
澄清编辑:
实际上,经过仔细检查,实际上根据调用模式会出现不同的菜单图标。例如,“Unlocker”应用程序只出现在“生成”版本中,而 Tortoise 和 DiffMerge 图标出现在直接启动的版本中。
这就是我的机器上“正常”Windows 资源管理器窗口的样子。这是使用 WinKey-E 快捷方式打开的,或从 DOS 命令外壳调用:
这是从 Cygwin 启动时的样子(检查同一目录中的同一文件):
澄清编辑2:
从 Eclipse 和 Cygwin 启动时,我观察到以下差异:
我记得,在这些应用程序中,当我观察到这个问题时,只安装了 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 的答案,因为它实际上最接近基本答案,我认为没有办法分享赏金,但我希望你们知道你们的帮助至关重要。
在以下线程中处理了类似的问题:HgTortoise in Vista 64-bit not displayed the context menu。
在那里,接受的答案是使用以下命令在 Vista 64 位上运行 32 位 Windows 资源管理器的方法:
%Systemroot%\SysWOW64\explorer.exe /separate
后来对该线程的更新说:
更新:TortoiseHg 0.8(2009-07-01 发布)现在在安装程序中包含 32 位和 64 位 shell 扩展,并且还适用于 Windows 7。不再需要下面描述的解决方法。
因此,您的问题似乎是某些产品仅安装一种版本的扩展,即 32 位和 64 位。这是正常现象,因为 32 位 shell 扩展无法加载到 64 位 Windows 资源管理器中,反之亦然。
对于每个此类产品,解决方案是找到缺少的 shell 扩展 32/64 位版本并将其安装在正确的环境中。