it-swarm-ja.com

Windowsエクスプローラーは、Vista64の32ビットモードでさまざまなサードパーティのコンテキストメニューを表示します

Windowsエクスプローラーでファイルを右クリックして有効にするメニューにアクションを追加するサードパーティアプリケーションがいくつかあります。これらはTortoiseSVNなどのツールです。

通常は正常に動作しますが、一部のアプリケーションは、これらのメニューがないWindowsエクスプローラーウィンドウを開きます。たとえば、Explorer . &を使用してCygwinからWindowsエクスプローラーウィンドウを起動するか、Eclipseで「ファイルの探索」アクションを使用すると、このような状態になります。

これはVistaのバグですか? Windowsエクスプローラーを一貫して動作させるためにできることはありますか?

説明の編集:

実際、よく調べてみると、呼び出しモードによっては実際にはdifferentメニューアイコンが表示されているようです。例えば。 「Unlocker」アプリケーションは「spawned」バージョンでのみ表示されますが、TortoiseおよびDiffMergeアイコンは直接起動されたバージョンで表示されます。

これは、私のマシンで「通常の」Windowsエクスプローラウィンドウがどのように表示されるかを示しています。これは、WinKey-Eショートカットを使用して開くか、DOSコマンドシェルから呼び出されました。

alt text

Cygwinから起動したとき(同じディレクトリ内の同じファイルを調べる)は次のようになります。

alt text

説明編集2:

EclipseとCygwinから起動すると、次の違いが見られます。

  • TortoiseSVNおよびTortoiseGITアイコンオーバーレイが表示されない
  • Notepad ++で編集しても表示されない
  • TortoiseSVNおよびTortoiseGITメニューが表示されない
  • DiffMergeメニューが表示されない
  • 消しゴムメニューが表示されない
  • 7Zipメニューが表示されない
  • ロック解除メニューdoが表示されます

私の記憶では、これらのアプリケーションのうち、この問題を観察したときはNotepad ++とTortoiseSVN、およびKDiff3のみがインストールされていました(後でトラブルシューティングを試みるためにKDiff3コンテキストメニューをアンインストールしました)。

また、私が64ビットVistaを使用していることも関係があるかもしれません。

更新3:

Greechの提案のおかげで、32ビットバージョンと64ビットバージョンの両方のShellExViewをインストールして実行しました。私が推測していたように、2人は異なるセットアイテムが利用可能であるのを見ました。

ShellExView32ビットおよびShellExView64ビットの画面キャプチャは次のとおりです。これらは、Microsoft以外のすべてのエントリに制限されています。

(画像を新しいタブ/ウィンドウで開いてフルサイズで表示します)

32ビット:

alt text

64ビット:

alt text

したがって、問題は次のようになります。Windowsエクスプローラーが生成されると2ビットアプリケーションから 64ビットから起動される場合とは異なるメニューセットが表示されます。これを確認するために、%windir%\SysWoW64\cmd.exeを使用して32ビットコマンドプロンプトを起動し、その中でExplorer .を起動しました。予想どおり、32ビットアプリケーションメニューが表示されました。

結論

はい、問題は、64ビットOSで32ビットEclipseを実行していて、64ビットTortoiseSVN/TortoiseGITメニューがフックされていない32ビットバージョンのWindowsエクスプローラーを生成することです。解決策は次のとおりです。 TortoiseSVNダウンロードページ に記載されているように、32ビットTortoiseバージョンを並べてインストールするには:

X64ユーザーへの注意:32ビットバージョンと64ビットバージョンの両方を並べてインストールできます。これにより、32ビットアプリケーションでもTortoiseSVN機能が有効になります。

適切な質問をしてくれたArjanと、根本的な問題を診断するための重要なツールを提案してくれたGreechに感謝します。 harrymcの答えは、実際には根本的な答えに最も近いので、受け入れるつもりです。賞金を共有する方法はないと思いますが、皆さんの助けが重要であることを皆さんに知ってもらいたいと思います。

6
user13756

同様の問題が次のスレッドで処理されました: Vista 64ビットのHgTortoiseがコンテキストメニューを表示しない

そこで受け入れられた答えは、次のコマンドを使用して、Vista64ビットで32ビットWindowsエクスプローラーを実行する方法でした。

%Systemroot%\ SysWOW64\Explorer.exe /別

スレッドへのその後の更新は言った:

更新:TortoiseHg 0.8(2009-07-01リリース)は、インストーラーに32ビットと64ビットの両方のシェル拡張機能が含まれるようになり、Windows7でも機能します。以下で説明する回避策は不要になりました。

したがって、問題は、一部の製品が32ビットと64ビットのいずれかの拡張機能の1つのバージョンのみをインストールすることであるように思われます。 32ビットのシェル拡張機能は64ビットのWindowsエクスプローラーにロードできないため、これは正常です。その逆も同様です。

その場合の解決策は、そのような製品ごとに、不足しているシェル拡張32/64ビットバージョンを見つけて、適切な環境にインストールすることです。

4
harrymc

私がこの提案で私の無知を単に示すならば、私の謝罪、しかしそれはよく意味されます。

NirSoft に移動し、 ShellEx View というフリーウェアを見ると、彼のフリーウェアシステムツールの下で役立つ場合があります。

シェル拡張機能は、Windowsオペレーティングシステムの機能を拡張するインプロセスCOMオブジェクトです。ほとんどのシェル拡張機能はオペレーティングシステムによって自動的にインストールされますが、追加のシェル拡張機能コンポーネントをインストールする他の多くのアプリケーションもあります。例:コンピューターにWinZipをインストールした場合、Zipファイルを右クリックすると特別なWinZipメニューが表示されます。このメニューは、システムにシェル拡張機能を追加することによって作成されます。

ShellExViewユーティリティは、コンピュータにインストールされているシェル拡張機能の詳細を表示し、各シェル拡張機能を簡単に無効または有効にすることができます。

ShellExViewは、エクスプローラー環境のコンテキストメニューの問題を解決するために使用できます。詳細については、次の記事を参照してください。 右クリックが遅いか、コンテキストメニューハンドラーが原因で奇妙な動作が発生します

3
Greech