6

I have several third-party applications that add their actions to the menu that's enabled by right-clicking on files in a Windows Explorer. These are tools such as TortoiseSVN.

It usually works fine, but some applications open Windows Explorer windows where these menus are absent. For example, launching a windows explorer window from Cygwin using explorer . &, or using "Explore Files" action in Eclipse results in such state.

Is this a bug in Vista? Is there anything I can do to make Windows Explorer behave consistently?

Clarification Edit:

Actually, upon careful examination, it appears that actually different menu icons appear depending on the invocation mode. E.g. "Unlocker" application only shows up in the "spawned" version, whereas Tortoise and DiffMerge icons show up in the directly launched one.

This is what a "normal" Windows Explorer window should look like on my machine. This was opened using WinKey-E shortcut, or invoked from DOS command shell:

alt text

This is what it looks like (examining the same file in the same directory) when launched from Cygwin:

alt text

Clarification Edit 2:

I am observing the following differences when launching from Eclipse and Cygwin:

  • TortoiseSVN and TortoiseGIT icon overlays don't show up
  • Edit with Notepad++ doesn't show up
  • TortoiseSVN and TortoiseGIT menus don't show up
  • DiffMerge menus don't show up
  • Eraser menus don't show up
  • 7Zip menus don't show up
  • Unlocker menus do show up

To my recollection, of these applications, only Notepad++ and TortoiseSVN were installed when I observed this issue, as well as KDiff3 (I later uninstalled KDiff3 context menus to try to troubleshoot it).

Also, it might be relevant that I'm on the 64-bit Vista.

Update 3:

Thanks to Greech's suggestion, I installed and ran ShellExView, both 32-bit and 64-bit versions. As I was guessing, the two saw different sets items available.

Here are the screen captures for ShellExView 32-bit and ShellExView 64-bit. They are limited to all non-Microsoft entries.

(Open images in new tabs/windows to see full size)

32-bit:

alt text

64-bit:

alt text

So, the problem reduces to this: when Windows Explorer is spawned from a 32-bit application it gets a different set of menus than when launched from a 64-bit one. To confirm this, I started a 32-bit command prompt using %windir%\SysWoW64\cmd.exe, and launched explorer . inside there. As expected, the 32-bit application menus were visible.

Conclusion

Yes, the problem is that I was running 32-bit Eclipse on 64-bit OS, and it would spawn the 32-bit version of Windows Explorer that didn't have my 64-bit TortoiseSVN/TortoiseGIT menus hooked in. The solution is to install the 32-bit Tortoise versions side by side, as mentioned on the TortoiseSVN downloads page:

Note for x64 users: you can install both the 32 and 64-bit version side by side. This will enable the TortoiseSVN features also for 32-bit applications.

Many thanks to Arjan for asking the right questions, and to Greech for suggesting the key tool to diagnose the underlying issue. I'm going to accept harrymc's answer as it actually comes the closest to the underlying answer, and I don't think there's a way to share the bounty, but I want you guys to know that your help was crucial.

11
  • And I think you can forget about Cygwin; when starting an EXE from Cygwin's prompt, isn't that just the same as using the good old built-in Windows (Dos) command prompt thingy? So: wouldn't you get the same results from that built-in Windows command prompt?
    – Arjan
    Oct 13, 2009 at 20:56
  • You'd think so, wouldn't you?
    – user13756
    Oct 13, 2009 at 21:32
  • Yes :-) So if it is indeed the same from the Windows command prompt, then maybe don't mention Cygwin? And what about that My Computer thing? (I vaguely remember there are some command line options to set "the root" of a Windows Explorer window, and wether or not the folder-sidebar is shown -- maybe that's where too look for differences. And if you're editing: They also don't have the icon overlays that TortoiseSVN provides seems interesting as well!)
    – Arjan
    Oct 13, 2009 at 21:49
  • Menus and overlays show up fine when launched from windows command shell, but not Cygwin. I will edit to clarify the observed behavior further.
    – user13756
    Oct 13, 2009 at 23:30
  • I booted a dusty Win XP Home Edition. No differences for My Computer, Windows Explorer or Cygwin. It does not have SVN things installed, but other context menus like WinZip, virus scanner and PSPad are always there, no matter how I start Windows Explorer. Dropbox overlays are always there as well. Task Manager always shows a single instance of the process explorer. The (old) Eclipse on that machine does not seem to have the Explore Files option?
    – Arjan
    Oct 14, 2009 at 8:59

2 Answers 2

4
+100

A similar problem was treated in the following thread : HgTortoise in Vista 64-bit not showing the context menu.

There, the accepted answer was a way to run 32-bit windows explorer on Vista 64-bit using the command:

%Systemroot%\SysWOW64\explorer.exe /separate

A later update to the thread said:

Update: TortoiseHg 0.8 (released 2009-07-01) now includes both 32 and 64 bit shell extensions in the installer, and also works with Windows 7. The workaround described below is no longer necessary.

So it seems that your problem is that some products simply install only one version of the extension, either 32 and 64 bits. This is normal, since 32-bit shell extensions cannot be loaded into a 64-bit Windows Explorer, and vice-versa.

A solution would then be, for each such product, to find the missing shell extension 32/64-bits version and to install it in its proper environment.

0
3

My apologies if I simply show my ignorance with this suggestion, but it is meant well.

If you go to NirSoft and look at the freeware called ShellEx View, under his freeware System Tools, it may be of help:

Shell Extensions are in-process COM objects which extends the abilities of Windows operating system. Most shell extensions are automatically installed by the operating system, but there are also many other applications that install additional shell extension components. For example: If you install WinZip on your computer, you'll see a special WinZip menu when you right-click on a Zip file. This menu is created by adding a shell extension to the system.

The ShellExView utility displays the details of shell extensions installed on your computer, and allows you to easily disable and enable each shell extension.

ShellExView can be used for solving context-menu problems in Explorer environment. For more information, read the following article: Right-click is slow or weird behavior caused by context menu handlers.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .