TC im Kontextmenü (Detailfrage)

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
alxwz
Junior Member
Junior Member
Posts: 24
Joined: 2005-12-23, 14:41 UTC

TC im Kontextmenü (Detailfrage)

Post by *alxwz »

Hi, ich hatte bisher einen Eintrag für TC im Kontextmenü durch den folgenden Registry-Eintrag:

Code: Select all

[HKEY_CLASSES_ROOT\Folder\shell\Total_Command]
@="&Total Command"

[HKEY_CLASSES_ROOT\Folder\shell\Total_Command\command]
@="<Programmverzeichnis>\\TOTALCMD.EXE %1"

Nach einem Wechsel auf XP habe ich festgestellt, daß ich damit zwar Ordner im TC öffnen kann, aber nicht solche, die auf dem Desktop liegen.
In einem anderen Thread hier habe ich folgenden Variante für den Registry-Eintrag gefunden:

Code: Select all

[HKEY_CLASSES_ROOT\Folder\shell\Total_Command\command]
@="\"<Programmverzeichnis>\\TOTALCMD.EXE\" /O /T \"%1\""

Damit funktioniert es.
Frage: kann mir jemand sagen, wofür das "\" am Anfang und das "/O /T \" am Ende stehen?
User avatar
Sir_SiLvA
Power Member
Power Member
Posts: 3381
Joined: 2003-05-06, 11:46 UTC

Post by *Sir_SiLvA »

Frage: kann mir jemand sagen, wofür ... das "/O /T " am Ende stehen?
hilfe-datei des TC wrote:/O Falls Total Commander bereits läuft, aktivieren und Pfad(e) an dieses Programm übergeben (übergeht Einstellung im Konfigurationsdialog für mehrere Kopien von Total Commander gleichzeitig)

/T Öffnet die übergebenen Verzeichnisse in neuen Tabs (für Benutzung mit /O)
Hoecker sie sind raus!
alxwz
Junior Member
Junior Member
Posts: 24
Joined: 2005-12-23, 14:41 UTC

Post by *alxwz »

Na das ging ja schnell, und das zu der Uhrzeit :D

Verstehe aber jetzt immer noch nicht ganz, warum das auf dem Desktop funktioniert und die erste Variante nicht :?:
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

Die erste Variante tut's nicht, weil der Pfad zum TC auf Deinem System keine(!) Leerzeichen enthält! Das führt dann dazu, daß das %1, also der Ordnerpfad, mit langem Dateiformat (statt 8.3-Format, wenn der Pfad Leerzeichen enthielte), aber ohne(!) Anführungszeichen übergeben wird, was wiederum dazu führt, daß der gestartete TC den übergebenen Ordnerpfad nur bis zum ersten Leerzeichen interpretiert.

Um sicherzugehen, daß solche Probleme verhindert werden, sollte man Parameter, die Leerzeichen enthalten können, immer in Anführungszeichen setzen. Es schadet auch nichts, den Applikationsnamen selbst in Anführungszeichen zu setzen.

\ ist nötig als sogenannte Maskierung, damit der Registryeditor beim Einlesen weiß, daß er das Anführungszeichen in die Registry schreiben soll und daß es nicht als Anführungszeichen im Sinne der Registryfile-Syntax – jetzt folgt ein Registryeintrag des Typs REG_SZ – zu verstehen ist.

Icfu
This account is for sale
alxwz
Junior Member
Junior Member
Posts: 24
Joined: 2005-12-23, 14:41 UTC

Post by *alxwz »

icfu,
danke für die Zusatzinfo.
Inzwischen habe ich die erste Variante auch noch einmal in korrigierter Form ausprobiert:

Code: Select all

@="D:\\Tools\\Totalcmd\\TOTALCMD.EXE \"%1\""

Mehr Anführungszeichen waren gar nicht nötig.
Mir gefällt aber die Variante von Sir_SiLvA (mit neuem Tab) besser.
Das Leerzeichen war übrigens von McRiosoft: "Dokumente und Einstellungen"... :(

P.S.: Bevor es jemand merkt und schimpft: Ja, ich hab' dasselbe auch im DOpus-Forum gepostet. Ist aber ein anderer Kundenkreis. Anwesende natürlich ausgeschlossen. :wink:
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

Mehr Anführungszeichen waren gar nicht nötig.
Beim TC nicht, bei anderen Programmen schon. Wie gesagt: Es schadet nicht.

Icfu
This account is for sale
Post Reply