O Windows Explorer mostra diferentes menus de contexto de terceiros no modo de 32 bits no Vista 64

7

Eu tenho vários aplicativos de terceiros que adicionam suas ações ao menu que é ativado clicando com o botão direito do mouse nos arquivos em um Windows Explorer. Estas são ferramentas como o TortoiseSVN.

Geralmente funciona bem, mas alguns aplicativos abrem janelas do Windows Explorer onde esses menus estão ausentes. Por exemplo, iniciar uma janela do Windows Explorer a partir do Cygwin usando explorer . & ou usando a ação "Explorar arquivos" no Eclipse resulta em tal estado.

Isso é um bug no Vista? Existe alguma coisa que eu possa fazer para fazer o Windows Explorer se comportar de forma consistente?

Clarificação Editar:

Na verdade, após um exame cuidadoso, parece que os ícones do menu diferentes aparecem, dependendo do modo de chamada. Por exemplo. A aplicação "Unlocker" só aparece na versão "spawned", enquanto os ícones Tortoise e DiffMerge aparecem na versão lançada diretamente.

É assim que uma janela "normal" do Windows Explorer deve ficar na minha máquina. Isso foi aberto usando o atalho WinKey-E ou invocado no shell de comando do DOS:

Istoéoqueparece(examinandoomesmoarquivonomesmodiretório)quandoiniciadoapartirdoCygwin:

Esclarecimento Editar 2:

Estou observando as seguintes diferenças ao iniciar o Eclipse e o Cygwin:

  • As sobreposições de ícones do TortoiseSVN e TortoiseGIT não aparecem
  • Editar com o Notepad ++ não é exibido
  • Os menus TortoiseSVN e TortoiseGIT não aparecem
  • Os menus do DiffMerge não aparecem
  • Os menus de borracha não aparecem
  • 7Os menus não são exibidos
  • menus Desbloquear fazer aparecer

A meu ver, destas aplicações, apenas o Notepad ++ e o TortoiseSVN foram instalados quando observei este problema, bem como o KDiff3 (mais tarde, desinstalei os menus de contexto do KDiff3 para tentar resolver o problema).

Além disso, pode ser relevante que eu esteja no Vista de 64 bits.

Atualização 3:

Graças à sugestão do Greech, instalei e executei o ShellExView, nas versões de 32 e 64 bits. Como eu estava adivinhando, os dois viram itens de conjuntos diferentes disponíveis.

Aqui estão as capturas de tela do ShellExView de 32 bits e do ShellExView de 64 bits. Eles estão limitados a todas as entradas que não sejam da Microsoft.

(Abra as imagens em novas guias / janelas para ver em tamanho maior)

32 bits:

64bits:

Portanto, o problema se reduz a isso: quando o Windows Explorer é gerado a partir de um aplicativo de 32 bits , ele obtém um conjunto diferente de menus do que quando iniciado de um de 64 bits. Para confirmar isso, iniciei um prompt de comando de 32 bits usando %windir%\SysWoW64\cmd.exe e iniciei o explorer . lá dentro. Como esperado, os menus do aplicativo de 32 bits estavam visíveis.

Conclusão

Sim, o problema é que eu estava executando o Eclipse de 32 bits no SO de 64 bits e ele gerava a versão de 32 bits do Windows Explorer que não tinha meus menus TortoiseSVN / TortoiseGIT de 64 bits conectados. A solução é instalar lado a lado as versões do Tortoise de 32 bits, como mencionado na página de downloads do TortoiseSVN :

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.

Muito obrigado a Arjan por fazer as perguntas certas e ao Greech por sugerir a ferramenta-chave para diagnosticar o problema subjacente. Vou aceitar a resposta de harrymc, já que ela realmente chega mais perto da resposta subjacente, e não acho que haja uma maneira de compartilhar a recompensa, mas quero que vocês saibam que sua ajuda foi crucial.

    
por user13756 09.10.2009 / 21:09

2 respostas

4

Um problema semelhante foi tratado no seguinte tópico: HgTortoise no Vista de 64 bits não mostrando o menu de contexto .

Lá, a resposta aceita foi uma maneira de executar o Windows Explorer de 32 bits no Vista de 64 bits usando o comando:

%Systemroot%\SysWOW64\explorer.exe /separate

Uma atualização posterior para o segmento disse:

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.

Portanto, parece que o seu problema é que alguns produtos simplesmente instalam apenas uma versão da extensão, 32 ou 64 bits. Isso é normal, já que as extensões de shell de 32 bits não podem ser carregadas em um Windows Explorer de 64 bits e vice-versa.

Uma solução seria então, para cada produto, encontrar a versão 32/64-bits da extensão do shell que faltava e instalá-la em seu ambiente apropriado.

    
por 15.10.2009 / 21:56
3

Minhas desculpas se eu simplesmente mostro minha ignorância com essa sugestão, mas isso significa bem.

Se você for a NirSoft e olhar para o freeware chamado ShellEx View , sob o seu freeware System Tools, pode ser útil:

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.

    
por 14.10.2009 / 22:07