nur mal zur info:
unter win7 x64 rtm funktioniert das kontextmenü reibungslos
@ts-soft: wieso sollte der tc fehler anderer programme abfangen? wäre schön, wenn das ginge, aber den tc kompatibel zu einer riesigen anzahl anderer programme zu machen ist doch utopisch. deswegen wäre es doch angebracht, den fehler zu lokalisieren, damit sich darum gekümmert werden kann und bei anderen der fehler evtl. gar nicht erst auftritt. wenn du mitteilen würdest, woran der fehler liegt (liegen kann), könnte man vielleicht versuchen, den fehler zu reproduzieren und so zur fehlerbehebung beitragen. auch im sinne anderer user
Rechte Maus / ContextMenu problem TC 7.50a Win 7
Moderators: Hacker, Stefan2, white
Soso. Die anderen Programme sind nicht zufälligerweise 64Bit Programme wie der x64-Explorer?ts-soft wrote:Da die Shellextension mit anderen Programmen anscheinend keine Probleme macht, ist das nicht logischer.
Dir ist klar, das diese eine 32Bit ShellExtension gar nicht zu sehen bekommen?
Anscheinend weißt du aber nicht allzuviel über ShellExtensions.Da ich selber auch Programmiere, weiß ich,
das dies nicht immer leicht umzusetzen ist, aber wat mut dat mut.
Ein Dateimanager sollte immer besonders stabil sein, korrupte oder nicht korrupte Einträge in der Registry sollten ihm nichts ausmachen
Diese werden als externe DLL's im Prozessraum des Explorers oder TC geladen und ausgeführt.
Ein korrupter Registryeintrag ist garantiert nicht problemauslösend.
Eher, dass diese DLL eigenständig beschließt mit ihren Programmfehler den Prozess zu traktieren (wie wild mit Exceptions um sich zu schmeißen, oder den Stack zu korrumpieren).
Im günstigsten Fall kann Christian da auch nichts anderes machen, als zu versuchen die Exception abzufangen.
Gruß
Holger
Das stimmt, ShellExtensions sind wohl COM Objekte und in Nicht-OOPHolgerK wrote: Anscheinend weißt du aber nicht allzuviel über ShellExtensions.
Sprachen etwas schwierig umzusetzen (aber es geht wohl, hab vor Jahren
mal ein Beispiel gesehen)
Das wäre doch der normale Weg. Exception abfangen, Object releasen und weiter im TextHolgerK wrote: Im günstigsten Fall kann Christian da auch nichts anderes machen, als zu versuchen die Exception abzufangen.
Gruß
Holger

Ich bin dann doch mal den von euch vorgeschlagenen Weg gegangen und
mußte Shellextensions folgender Hersteller entfernen:
Wobei WinRAR ist die 64-Bit VersionAdobe
Acronis
TechSmith
Ulead
WinRAR

Irgendwann wirds wohl doch eine TC-64-Bit Version geben und solche
Probleme sind dann passé.
Schönes Wochenende
Thomas
// edit
Scheint so, als wären das alles 32-Bit ShellExtensions, die von 64-Bit
Anwendungen installiert wurden. Hab nochmal nachgesehen, selbst
TechSmith liefert x64 DLLs mit. Acrobat ist auch 64-Bit, Acronis unterstüzt
64-Bit und Ulead ist vielleicht ein Irrtum, das er sich in dieser Aufstellung
befindet.
Mit COM-Schnittstellen in C++ oder von mir aus auch Delphi (beides übrigens OO) zu hantieren ist manchmal nicht so einfach (manchmal meine ich mich in die Assembler Ära zurückversetzt zu sehen).ts-soft wrote:Das stimmt, ShellExtensions sind wohl COM Objekte und in Nicht-OOP Sprachen etwas schwierig umzusetzen
Wäre Objective Cobol besser geeignet?
Tja, wenn alles im Leben sooo einfach wäre..Das wäre doch der normale Weg. Exception abfangen, Object releasen und weiter im Text![]()
WinRar installiert, soweit ich weiß, sowohl 32 als 64Bit ShellExtensions, die als Vermittler zum eigentlichen Programm dienen. Sollte allerdings normalerweise kein Problem darstellen.Wobei WinRAR ist die 64-Bit Version![]()
"Eine 64-bit-Version ist definitiv geplant.."Irgendwann wirds wohl doch eine TC-64-Bit Version geben und solche Probleme sind dann passé.
Ob damit solche Probleme passé sind, ist eine andere Frage.
Delphi ist eine andere Laufzeitumgebung als die C-Runtime.
Gruß
Holger
- ghisler(Author)
- Site Admin
- Posts: 50753
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Leider ist das nicht möglich. Wieso? Das Kontextmenü wird mit einem einzigen Befehl angefordert:Das wäre doch der normale Weg. Exception abfangen, Object releasen und weiter im Text
IContextMenu->QueryContextMenu();
Dabei werden leider auch alle in der Registrierdatenbank eingetragenen Shellerweiterungen geladen. Es gibt keine Möglichkeit, einzelne Shellerweiterungen zu überspringen!
Beim X64-Untermenü gehe ich dafür einen anderen Weg: Ich lade jede Shellerweiterung einzeln, und fange allfällige Exceptions ab.
Sehr gerne würde ich das auch beim 32-bit-Menü so machen, doch leider fehlen dann alle Standardeinträge wie Öffnen, Ausschneiden, Kopieren, Einfügen, Verknüpfung erstellen etc. etc. Bisher ist es mir nicht gelungen, nur diese zu laden und NICHT die Erweiterungen des Kontextmenüs...
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
problem behoben...
Ups, da habe ich ja eine Diskussion ausgelösst.
Also, bei mir lag das offenbar an Tortoise SVN Client. Ich hatte noch die Version 1.6.3 drauf und haben nachträglich die Version 1.6.5 Installiert.
Danach hatte ich das Problem nicht mehr.
Vielen Dank
Gruss Martin
Also, bei mir lag das offenbar an Tortoise SVN Client. Ich hatte noch die Version 1.6.3 drauf und haben nachträglich die Version 1.6.5 Installiert.
Danach hatte ich das Problem nicht mehr.
Vielen Dank
Gruss Martin