Windows Explorer zeigt unter Vista 64 verschiedene Kontextmenüs von Drittanbietern im 32-Bit-Modus an

6

Ich habe mehrere Anwendungen von Drittanbietern, die ihre Aktionen dem Menü hinzufügen, das durch Klicken mit der rechten Maustaste auf Dateien in einem Windows Explorer aktiviert wird. Dies sind Tools wie TortoiseSVN.

Normalerweise funktioniert es einwandfrei, aber einige Anwendungen öffnen Windows Explorer-Fenster, in denen diese Menüs fehlen. Wenn Sie beispielsweise ein Windows Explorer-Fenster von Cygwin aus explorer . &oder mithilfe der Aktion "Dateien durchsuchen" in Eclipse starten, wird ein solcher Status angezeigt.

Ist das ein Fehler in Vista? Kann ich irgendetwas tun, damit sich Windows Explorer konsistent verhält?

Klarstellung Bearbeiten:

Bei sorgfältiger Prüfung werden tatsächlich je nach Aufrufmodus unterschiedliche Menüsymbole angezeigt . Beispielsweise wird die Anwendung "Unlocker" nur in der "gespawnten" Version angezeigt, während die Symbole "Schildkröte" und "DiffMerge" in der direkt gestarteten Version angezeigt werden.

So sollte ein "normales" Windows Explorer-Fenster auf meinem Computer aussehen. Dies wurde mit der WinKey-E-Verknüpfung geöffnet oder über die DOS-Befehlsshell aufgerufen:

Alt-Text

So sieht es aus (Untersuchen derselben Datei im selben Verzeichnis), wenn es von Cygwin aus gestartet wird:

Alt-Text

Klarstellung Bearbeiten 2:

Beim Starten von Eclipse und Cygwin beobachte ich die folgenden Unterschiede:

  • TortoiseSVN- und TortoiseGIT-Symbolüberlagerungen werden nicht angezeigt
  • Bearbeiten mit Notepad ++ wird nicht angezeigt
  • Die Menüs TortoiseSVN und TortoiseGIT werden nicht angezeigt
  • DiffMerge-Menüs werden nicht angezeigt
  • Radiergummi-Menüs werden nicht angezeigt
  • 7Zip-Menüs werden nicht angezeigt
  • Unlocker Menüs Sie zeigen

Meiner Erinnerung nach wurden von diesen Anwendungen nur Notepad ++ und TortoiseSVN installiert, als ich dieses Problem bemerkte, sowie KDiff3 (ich habe später die KDiff3-Kontextmenüs deinstalliert, um zu versuchen, das Problem zu beheben).

Es könnte auch relevant sein, dass ich auf dem 64-Bit-Vista bin.

Update 3:

Dank des Vorschlags von Greech habe ich ShellExView installiert und ausgeführt, sowohl 32-Bit- als auch 64-Bit-Versionen. Wie ich vermutet hatte, sahen die beiden verschiedene Set-Artikel zur Verfügung.

Hier sind die Screenshots für ShellExView 32-Bit und ShellExView 64-Bit. Sie sind auf alle Nicht-Microsoft-Einträge beschränkt.

(Öffnen Sie Bilder in neuen Registerkarten / Fenstern, um sie in voller Größe anzuzeigen.)

32-Bit:

Alt-Text

64-Bit:

Alt-Text

Das Problem reduziert sich also auf Folgendes: Wenn Windows Explorer aus einer 32-Bit-Anwendung erstellt wird, werden andere Menüs angezeigt als beim Starten aus einer 64-Bit -Anwendung . Um dies zu bestätigen, habe ich eine 32-Bit-Eingabeaufforderung mit %windir%\SysWoW64\cmd.exegestartet und dort gestartet explorer .. Wie erwartet waren die 32-Bit-Anwendungsmenüs sichtbar.

Fazit

Ja, das Problem ist, dass ich 32-Bit-Eclipse unter 64-Bit-Betriebssystem ausgeführt habe und die 32-Bit-Version von Windows Explorer erstellt habe, in der meine 64-Bit-Menüs TortoiseSVN / TortoiseGIT nicht eingebunden waren. Die Lösung ist So installieren Sie die 32-Bit-Tortoise-Versionen nebeneinander, wie auf der TortoiseSVN-Downloadseite angegeben :

Hinweis für x64-Benutzer: Sie können sowohl die 32- als auch die 64-Bit-Version nebeneinander installieren. Dadurch werden die TortoiseSVN-Funktionen auch für 32-Bit-Anwendungen aktiviert.

Vielen Dank an Arjan, der die richtigen Fragen gestellt hat, und an Greech, der das Schlüsselinstrument zur Diagnose des zugrunde liegenden Problems vorgeschlagen hat. Ich werde die Antwort von harrymc akzeptieren, da sie der zugrunde liegenden Antwort am nächsten kommt, und ich glaube nicht, dass es eine Möglichkeit gibt, das Kopfgeld zu teilen, aber ich möchte, dass ihr wisst, dass eure Hilfe entscheidend war.

user13756
quelle
Und ich denke, Sie können Cygwin vergessen; Wenn Sie eine EXE-Datei über die Eingabeaufforderung von Cygwin starten, ist das nicht dasselbe wie die Verwendung der guten alten integrierten Windows-Eingabeaufforderung (Dos)? Also: Würden Sie mit dieser integrierten Windows-Eingabeaufforderung nicht dieselben Ergebnisse erzielen?
Arjan
Sie würden so denken, nicht wahr?
user13756
Ja :-) Wenn es also an der Windows-Eingabeaufforderung tatsächlich dasselbe ist, erwähnen Sie Cygwin vielleicht nicht? Und was ist mit dieser Sache mit dem Arbeitsplatz? (Ich erinnere mich vage, dass es einige Befehlszeilenoptionen gibt, mit denen Sie das "Stammverzeichnis" eines Windows Explorer-Fensters festlegen können und ob die Ordnerseitenleiste angezeigt wird oder nicht - vielleicht suchen Sie dort auch nach Unterschieden. Und wenn Sie bearbeiten: Sie Auch die von TortoiseSVN bereitgestellten Icon-Overlays scheinen ebenfalls interessant zu sein!)
Arjan,
Menüs und Überlagerungen werden gut angezeigt, wenn sie über die Windows-Befehlsshell gestartet werden, nicht jedoch über Cygwin. Ich werde bearbeiten, um das beobachtete Verhalten weiter zu verdeutlichen.
user13756
Ich habe eine staubige Win XP Home Edition gestartet. Keine Unterschiede für Arbeitsplatz, Windows Explorer oder Cygwin. Es sind keine SVN-Dinge installiert, aber andere Kontextmenüs wie WinZip, Virenscanner und PSPad sind immer vorhanden, unabhängig davon, wie ich Windows Explorer starte. Auch Dropbox-Overlays sind immer vorhanden. Der Task-Manager zeigt immer eine einzelne Instanz des Prozesses an explorer. Die (alte) Eclipse auf diesem Computer scheint nicht die Option "Dateien durchsuchen" zu haben.
Arjan

Antworten:

4

Ein ähnliches Problem wurde im folgenden Thread behandelt: HgTortoise in Vista 64-Bit zeigt das Kontextmenü nicht an .

Dort war die akzeptierte Antwort eine Möglichkeit, den 32-Bit-Windows-Explorer unter Vista 64-Bit mit dem folgenden Befehl auszuführen:

% Systemroot% \ SysWOW64 \ explorer.exe / separate

Ein späteres Update des Threads sagte:

Update: TortoiseHg 0.8 (veröffentlicht am 01.07.2009) enthält jetzt sowohl 32- als auch 64-Bit-Shell-Erweiterungen im Installationsprogramm und funktioniert auch mit Windows 7. Die unten beschriebene Problemumgehung ist nicht mehr erforderlich.

Ihr Problem scheint also zu sein, dass einige Produkte einfach nur eine Version der Erweiterung installieren, entweder 32 oder 64 Bit. Dies ist normal, da 32-Bit-Shell-Erweiterungen nicht in einen 64-Bit-Windows-Explorer geladen werden können und umgekehrt.

Eine Lösung wäre dann, für jedes dieser Produkte die fehlende 32/64-Bit-Version der Shell-Erweiterung zu finden und in der richtigen Umgebung zu installieren.

harrymc
quelle
3

Ich entschuldige mich, wenn ich mit diesem Vorschlag einfach meine Unwissenheit zeige, aber es ist gut gemeint.

Wenn Sie zu NirSoft gehen und sich die Freeware ShellEx View unter seinen Freeware- Systemtools ansehen , kann dies hilfreich sein:

Shell-Erweiterungen sind in Bearbeitung befindliche COM-Objekte, die die Funktionen des Windows-Betriebssystems erweitern. Die meisten Shell-Erweiterungen werden automatisch vom Betriebssystem installiert, es gibt jedoch auch viele andere Anwendungen, die zusätzliche Shell-Erweiterungskomponenten installieren. Beispiel: Wenn Sie WinZip auf Ihrem Computer installieren, wird ein spezielles WinZip-Menü angezeigt, wenn Sie mit der rechten Maustaste auf eine Zip-Datei klicken. Dieses Menü wird erstellt, indem dem System eine Shell-Erweiterung hinzugefügt wird.

Das ShellExView-Dienstprogramm zeigt die Details der auf Ihrem Computer installierten Shell-Erweiterungen an und ermöglicht das einfache Deaktivieren und Aktivieren jeder Shell-Erweiterung.

ShellExView kann zum Lösen von Kontextmenüproblemen in der Explorer-Umgebung verwendet werden. Weitere Informationen finden Sie im folgenden Artikel: Rechtsklick ist ein langsames oder seltsames Verhalten, das durch Kontextmenü-Handler verursacht wird .

Griechisch
quelle