x64 und Context Menu - mal wieder

German support forum

Moderators: white, Hacker, Stefan2

User avatar
Tahattmeruh
Senior Member
Senior Member
Posts: 232
Joined: 2003-05-16, 13:35 UTC

x64 und Context Menu - mal wieder

Post by *Tahattmeruh »

Ich habe vor einiger Zeit auf dem Notebook Vista x64 installiert. Da ich dort den TC nicht so oft benutzt habe, war mir das Context Menu egal. Jetzt habe ich auf meinen Entwicklungsrechner auch Vista x64 und ich mußte nach 5 Minuten feststellen daß es unmöglich ist mit dem TC zu arbeiten weil viele Einträge fehlen.
Und kommt jetzt bitte nicht mit tausend Links. Die hab ich alle gelesen und kenne sie auswendig.
Und ich werde mit Sicherheit keine Programme doppelt installieren nur damit der TC das Menü richtig anzeigt.
Ich will auch nicht unbedingt einen TC x64 (wäre aber trotzdem schön).
Was ich suche ist ein Tool welches sich in das x32 Context Menu einklingt und alle x64 Einträge anzeigt. z.B. mit dem Namen x64. Es kann auch gerne alles nochmal auflisten in einem Untermenü.
Ich habe den SpeedCommander x64 getestet wo das alles super funktioniert. Aber der TC bleibt bei der Bedienung einfach unschlagbar.
Gibt es schon solch ein Tool?
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48088
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Wenn ich nicht unter chronischem Zeitmangel leiden würde, hätte ich so ein Tool schon lange geschrieben. Ich habe sogar schon einen Compiler unter Windows XP 64 installiert und erste Tests gemacht, weiter bin ich aber noch nicht gekommen...
Author of Total Commander
https://www.ghisler.com
User avatar
Tahattmeruh
Senior Member
Senior Member
Posts: 232
Joined: 2003-05-16, 13:35 UTC

Post by *Tahattmeruh »

Also wenn du so ein Tool hinbekommst, dann verspreche ich auch noch eine Lizenz zu kaufen.
Mit diesem Tool funktionieren zwar die Overlayicons nicht, aber damit kann ich leben.
User avatar
ate
Senior Member
Senior Member
Posts: 274
Joined: 2003-12-17, 22:48 UTC

Post by *ate »

Also so ein Tool würde mir auch gefallen, da ich demnächst ebenfalls mit einem 64-Bit Windows konfrontiert werde (und das Kontextmenu ab und zu benutze).
User avatar
HolgerK
Power Member
Power Member
Posts: 5406
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

2Tahattmeruh, ate

Ich habe grade mal etwas auf die Schnelle gebastelt, mit dem man vielleicht die Zeit bis zu einer endgültigen Lösung überbrücken kann:

Download: http://holgerk.drivehq.com//TC/ExplorerMenu4TC.zip

Gleich vorne weg: es ist keine vollständige Lösung (mir fehlt allerdings momentan auch die Zeit, um das zu perfektionieren) aber vielleicht ist es ja so auch schon ein klein wenig hilfreich.


Kurzanleitung:

- Exe aus dem Archiv entpacken

- auf einen Button ziehen

- im Parameterfeld " -List %L " eintragen

- Dateien markieren und den Button betätigen.

wenn alles gut geht, erscheint dann das 64 Bit Kontextmenu des Explorers.


Bekannte Restriktionen:

- Alle markierte Dateien/Verzeichnisse müssen relativ zum gleichen Vaterverzeichnis liegen.

- Gefixt 07.06.08: Umlaute und Sonderzeichen bereiten momentan noch Probleme. %l "short names" kann dabei allerdings helfen.

- Gefixt 07.06.08: Der Abbruch des Kontextmenues ist nicht so ohne weiteres möglich.
Ein Workaround ist einmal <RMB> auf dem Kontextmenu, gefolgt von einem <LMB> außerhalb des Kontextmenues.


- Man kann die EXE auch über ein Userkommando per Tastatur aufrufen.
Das Kontextmenu öffnet sich dann jedoch an der momentanen Position der Maus Gefixt 07.06.08:, und der Fokus bleibt im TC (Menu kann also anschließend nur über Maus bedient werden)

- Aufruf von Befehlen wie Copy, Delete, Search werden vom Explorer ausgeführt.

- Gefixt 13.06.08: Unter Umständen kommt es zu Problemen beim Versuch Untemenues von "Open with" anzuzeigen. (ist mir beim Testen auf auf einem XP32 System aufgefallen).
In diesem Fall bleibt der TC allerdings unbeeinflusst, nur die ExplorerMenu4TC.EXE verabschiedet sich mit einem Fehler aus dem Speicher.....


- ExplorerMenu4TC.exe darf nicht beendet werden solange noch ein über das Kontextmenu aufgerufener Dialog geöffnet ist (Der Dialog würde ansonsten mit in den Abgrund gezogen).

- Operationen über das Kontextmenu, die den Inhalt der TC-Panels modifizieren (z.B. "Winrar->Extract here") führen teilweise nicht zu einer Aktualisierung des TC-Panels.

- evtl. muss man einer Firewall einmal sagen, das Programm nicht zu blockieren (keine Sorge es ist keine Internetverbindung, sondern nur ein Localhost Port Verbindung die z.B. vom Processexplorer auch angezeigt wird)
...


Hintergrund (Implementierung):

ExplorerMenu4TC.exe ist eine in C# geschrieben Singel-Instance-Applikation und setzt ein installiertes .Net 2.0 voraus.

Single-Instance-Applikation bedeutet, dass die gleiche Exe mehrmals mit unterschiedlichen Kommandozeilenparametern aufgerufen werden kann, wobei allerdings immer nur eine Instanz im Speicher existiert.
Die Exe selber läuft nach dem ersten Start kontinuierlich weiter.

Über den Taskmanager lässt sich der dabei gestartet Dialog "(64 Bit) Explorer menu helper for Total Commander" auch in den Vordergrund holen.

Im diesem Dialog wird immer die Liste der zuletzt übergebenen Files angezeigt (nützlich zum Debugen wegen "Umlaute!" oder "Dateien nicht im gleichen Verzeichnis!").

Die Implementierung als .Net Assembly mit der Compileroption "AnyCPU", hatte für mich den Vorteil, dass ich
a) auf einige highlevel Methoden des .Net Frameworks zurückgreifen konnte (die SingelInstance Implementierung ist quasi umsonst),
und b) die Exe sowohl unter 32Bit als auch 64Bit lauffähig ist (ich sitze die meiste Zeit immer noch an einem 32Bit System).

Der Aufruf des Kontextmenus ist einem Sample-Code von "Andreas Johansson" http://afjohansson.spaces.live.com/blog/cns!3CA68ED86F5A5970!357.entry
entnommen.

Falls jemand Lust hat sich der Übung zu widmen, PIDL, IShellFolder, IContextMenu1-3 einmal in die richtige Reihenfolge zu biegen, um auch Dateilisten mit quer über das Filesystem verstreuten Dateien (Suchergebnisse!) zum Laufen zu bringen, kann ich gerne den bisherigen Quelltext zur Verfügung stellen. Alternativ wäre ich allerdings auch für einen hilfreichen Tip oder Link dankbar.

Mit freundlichem Gruß,
Holger

Edit 07.06.08 15:00
Bugfixes markiert. Download aktualisiert.
Edit 13.06.08
Ein Bug weniger.
Last edited by HolgerK on 2008-06-13, 09:40 UTC, edited 1 time in total.
User avatar
Tahattmeruh
Senior Member
Senior Member
Posts: 232
Joined: 2003-05-16, 13:35 UTC

Post by *Tahattmeruh »

Danke. Werde ich gleich testen. Das wäre ja schonmal ein erster Schritt.
User avatar
ate
Senior Member
Senior Member
Posts: 274
Joined: 2003-12-17, 22:48 UTC

Post by *ate »

Thx ! Sobald mein neuer Rechner konfiguriert ist, werde ich das Tool sofort testen.
User avatar
Tahattmeruh
Senior Member
Senior Member
Posts: 232
Joined: 2003-05-16, 13:35 UTC

Post by *Tahattmeruh »

Ich hab das ganze mal an 2 PCs getestet.
Auf einem funktioniert es, auf dem zweiten stürzt das Programm ab.
Leider schaffe ich es nicht das Menü über einen Shortcut zu starten.
Es funktioniert nur, wenn ich auf den Button klicke.
User avatar
HolgerK
Power Member
Power Member
Posts: 5406
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Tahattmeruh wrote:Auf einem funktioniert es, auf dem zweiten stürzt das Programm ab.
- Fehlermeldung?
- Hast du die zweite Version versucht. Ich hatte mein Posting 5 Minuten bevor du geantwortest hast aktualisiert.
- Evntl. Leerzeichen im Temppath. Versuchs mal mit -List "%L"
Leider schaffe ich es nicht das Menü über einen Shortcut zu starten.
usercmd.ini wrote:[em_64BitExplorerMenu]
button=%COMMANDER_PATH%\Addons\ExplorerMenu4TC.exe
cmd=%COMMANDER_PATH%\Addons\ExplorerMenu4TC.exe
param=-List "%L"
path=%COMMANDER_PATH%\Addons\
menu=64Bit Explorer menu
wincmd.ini wrote:[Shortcuts]
CS+F10=em_64BitExplorerMenu
Unter der Bedingung das "ExplorerMenu4TC.exe" in einem Unterverzeichnis der TC-Installation mit dem Namen "Addons" liegt. ansonsten den Pfad anpassen.
Als Shortcut ist dann <STRG+UMSCH+F10> definiert.
Geht natürlich auch über "Konfigurieren->Einstellungen..->Diverses->Tastenkombination..."

HTH,
Holger
User avatar
Tahattmeruh
Senior Member
Senior Member
Posts: 232
Joined: 2003-05-16, 13:35 UTC

Post by *Tahattmeruh »

Danke. Ich hab die INIs jetzt direkt editiert und jetzt wir das Menü gestartet.
Aber auf einem PC crasht das Programm. Windows bringt folgende Meldung:

Description:
Stopped working

Problem signature:
Problem Event Name: APPCRASH
Application Name: ExplorerMenu4TC.exe
Application Version: 1.0.0.0
Application Timestamp: 484a8498
Fault Module Name: mscorwks.dll
Fault Module Version: 2.0.50727.1434
Fault Module Timestamp: 475794b9
Exception Code: c0000005
Exception Offset: 0000000000337085
OS Version: 6.0.6001.2.1.0.256.1
Locale ID: 1031
User avatar
HolgerK
Power Member
Power Member
Posts: 5406
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Oha, Fehlersuche. :D

Da gibt es also Unterschiede zwischen deinen beiden Systemen.
Zumindest die "Microsoft .NET Runtime Common Language Runtime" (mscorwks.dl) scheint die Passende zu sein.

:arrow: Kannst Du auf Anhieb sagen, was bei den beiden Systemen signifikant unterschiedlich ist?
Etwa in der Richtung:
SP1, Firewall, Virenscanner, Security-Einstellungen, UAC, irgendwelche Beta Software von M$ (community previews), M$ Entwicklungswerkzeuge,...
Installiert bzw. nicht?

:arrow: Versuch ExplorerMenu4TC.exe mal ohne jeglichen Übergabeparameter aufzurufen.

Falls das nicht klappt dann stimmt evtl. irgend etwas nicht mit deiner .Net2.0 Installation.

Falls das Starten ohne Übergabeparameter funktionierte:
:arrow: Passiert der Crash im Kontextmenü eines bestimmten Dateityps, oder jedesmal?

Das könnte darauf hindeuten, dass auf dem einem System, ein in .Net geschriebener Kontextmenühandler installiert ist, der sich mit der von ExplorerMenu4TC.exe benutzen .Net Version nicht verträgt.
(Dino Esposito hat zwar 2004 mal einen Artikel veröffentlicht, wie man Shellextensions in .Net programmieren kann, allerdings gibt es Gründe, die eine solche Implementierung nicht ratsam erscheinen lassen)

Da gäbe es dann die Möglichkeit mit Shellextview http://www.nirsoft.net/utils/shexview-x64.zip ) probeweise "Context menu" Extensions auszuschalten (irgendwie habe ich da grade ein Déjà-vu... :shock:)

Mit freundlichem Gruß,
Holger
User avatar
Tahattmeruh
Senior Member
Senior Member
Posts: 232
Joined: 2003-05-16, 13:35 UTC

Post by *Tahattmeruh »

HolgerK wrote:Oha, Fehlersuche. :D
Oh ja. Das kenn ich gut :D
HolgerK wrote:Da gibt es also Unterschiede zwischen deinen beiden Systemen.
Zumindest die "Microsoft .NET Runtime Common Language Runtime" (mscorwks.dl) scheint die Passende zu sein.
Sind beides Vista x64 Ultimate Englisch mit SP1
HolgerK wrote::arrow: Kannst Du auf Anhieb sagen, was bei den beiden Systemen signifikant unterschiedlich ist?
Etwa in der Richtung:
SP1, Firewall, Virenscanner, Security-Einstellungen, UAC, irgendwelche Beta Software von M$ (community previews), M$ Entwicklungswerkzeuge,...
Installiert bzw. nicht?
Keine Firewall (nur die eingebaute). alles default. Keine Einstellungen
geändert nach der Installation. VB6 + VS2008 sind installiert.
Der Rest ist alles Portable Software.

HolgerK wrote::arrow: Versuch ExplorerMenu4TC.exe mal ohne jeglichen Übergabeparameter aufzurufen.
Dann passiert einfach nichts. Aber es Crasht nicht.
HolgerK wrote:Falls das Starten ohne Übergabeparameter funktionierte:
:arrow: Passiert der Crash im Kontextmenü eines bestimmten Dateityps, oder jedesmal?
Der Crash kommt immer. Kein Unterschied bei den Dateitypen.
HolgerK wrote: Das könnte darauf hindeuten, dass auf dem einem System, ein in .Net geschriebener Kontextmenühandler installiert ist, der sich mit der von ExplorerMenu4TC.exe benutzen .Net Version nicht verträgt.
Jetzt fällt mir doch ein Unterschied ein. Ich hab auf dem PC der nicht
funktioniert SubVersion installiert. Vielleicht liegts daran. Leider kann
ich das heute nicht testen.
User avatar
HolgerK
Power Member
Power Member
Posts: 5406
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Tahattmeruh wrote:Dann passiert einfach nichts. Aber es Crasht nicht.
Aha, dann liegt es am Aufbau/Aufruf des Kontextmenüs.
Ich hab auf dem PC der nicht funktioniert SubVersion installiert.
Benutzt du TortoiseSVN als GUI?

Ich nutze leider ein anderes Versionskontrollsystem.
Kann aber mal ToirtoiseSVN probeweise bei mir zu Hause installieren, um das zu debuggen.

BTW die TortoiseSVN ShellExtension ist nicht in .Net geschrieben.
Es wäre allerdings trotzdem hilfreich wenn du diese Shellextension mal temporär mit ShellextView deaktivieren könntest, um das Ganze etwas genauer einzukreisen.

Gruß,
Holger
User avatar
Tahattmeruh
Senior Member
Senior Member
Posts: 232
Joined: 2003-05-16, 13:35 UTC

Post by *Tahattmeruh »

Ich habs gerade nochmal getestet.
Es liegt an TortoiseSVN. Ich weiß aber nicht warum.
User avatar
HolgerK
Power Member
Power Member
Posts: 5406
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Tahattmeruh wrote:.. Es liegt an TortoiseSVN ..
Danke, ich werde es heut Abend mal versuchen bei mir zu reproduzieren.

Habe TortoiseSVN zwar noch nicht installiert, das sollte allerdings kein Problem sein.

Gruß,
Holger
Post Reply