Inkonsistenzen beim Erstellen von Buttons (Buttonbar)

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
ayww
Junior Member
Junior Member
Posts: 16
Joined: 2003-06-25, 15:50 UTC

Inkonsistenzen beim Erstellen von Buttons (Buttonbar)

Post by *ayww »

Hallo zusammen,

mir sind da einige Dinge aufgefallen im Zusammenhang mit dem Erstellen von Buttons auf der Buttonbar.
In meinen Beispielen erstelle ich einen Button der die Datei "C:\TEMP\Test weiter.cmd" ausführen soll.

Mir sind 2 Varianten bekannt um einen neuen Button zu erstellen:

Variante 1:
Die Datei aus einem der Fenster mit der Maus auf die Buttonbar ziehen (drag and drop).

Ergebnis:

Code: Select all

TOTALCMD#BAR#DATA
"C:\TEMP\Test weiter.cmd"

C:\WINDOWS\System32\shell32.dll,-153
Test weiter
C:\TEMP\
0
-1
Variante 2:
Menü Konfigurieren -> Buttonbar ändern -> anfügen -> Ändern >> Datei einfügen...
Im Durchsuchen-Dialog die Datei raussuchen und "Öffnen" klicken.

Ergebnis:

Code: Select all

TOTALCMD#BAR#DATA
C:\TEMP\Test weiter.cmd

C:\totalcmd\TOTALCMD.EXE,3

C:\TEMP\
0
-1
Folgende Dinge unterscheiden sich:

1. Bei Variante 1 wird der Dateiname ohne Erweiterung als Tooltip eingefügt, bei Variante 2 nicht. -> naja, ein kosmetisches Problem.

2. Bei Variante 1 wird das von Windows vorgesehene Icon eingetragen, bei Variante 2 "C:\totalcmd\TOTALCMD.EXE,3". Muss wohl an dem kuriosen Icon-Index von -153 liegen. Der steht übrigends wirklich so in der Registry in "HKEY_CLASSES_ROOT\cmdfile\DefaultIcon".
Bei der Variante 1 funktioniert es, warum also nicht bei Variante 2?

3. Enthält das Kommando Leerzeichen wird es von TC bei Variante 1 automatisch in Anführungszeichen gesetzt. Bei Variante 2 allerdings nicht!
Das ist im ersten Moment kein Problem. Wenn man jetzt die Datei "C:\TEMP\Test weiter.cmd" löscht, aber eine Datei namens "C:\TEMP\Test.cmd" vorhanden ist passiert folgendes:
Bei Variante 2 startet TC beim Klick auf den Button die "C:\TEMP\Test.cmd" und übergibt als ersten Parameter "weiter.cmd".

Ich hoffe man kann meiner Erklärung folgen. Falls nicht einfach die beiden obigen Buttons in die Bar einfügen und die 2 Dateien "C:\TEMP\Test weiter.cmd" und "C:\TEMP\Test.cmd" erstellen mit folgendem Inhalt:

Code: Select all

@echo off
echo.
echo Dateiname: %0
echo Erster Parameter: %1
echo.
pause
Dann "C:\TEMP\Test weiter.cmd" löschen und beide Buttons mal anklicken.


Mein Vorschlag wäre das Verhalten von Variante 2 so zu ändern daß es Variante 1 entspricht.

Wäre es nicht besser in der Zeile "Kommando" gar keine Parameter zuzulassen? Dafür gibts es ja die Zeile "Parameter".


Habe das ganze getestet unter Windows XP 32Bit und Windows XP x64 mit TC 7.56a und TC x64 8.0ß17a

Grüße ayww
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50625
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Danke, ich schaue mir das mal an.
Author of Total Commander
https://www.ghisler.com
ayww
Junior Member
Junior Member
Posts: 16
Joined: 2003-06-25, 15:50 UTC

Post by *ayww »

Hallo,

ich kann bestätigen mit TC 8.0 ß18 ist das Verhalten von Punkt 2. und 3. jetzt bei beiden Varianten gleich.

Vielen Dank für die schnelle Erledigung.

Gruß ayww
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50625
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Danke für's Melden!
Author of Total Commander
https://www.ghisler.com
User avatar
tom*de
Senior Member
Senior Member
Posts: 394
Joined: 2003-02-25, 09:21 UTC

Post by *tom*de »

Habe Verständnisfragen zu den Parametern beim TC-Button erstellen:

1. Steht der TC auf test.cmd ersetzt der Druck auf den Button den Parameter: ?%N mit: test.cmd
2. Steht der TC auf ein test.cmd ersetzt Druck auf den Button den Parameter: ?%N mit: "ein test.cmd", also TC fügt automatisch Hochkommata ein.

Schreibe ich: Parameter: ?"%N" so fügt TC im das 2. Fall doppelte Hochkommata: ""das ist ein test.cmd""
Will ich nun einen Dateinamen mit .ini erweitern: %N.ini so klappt das nur, wenn keine Leerzeichen enthalten sind. Sonst wird ein "ein test.cmd".ini draus.

A) Kann ich den Hochkomma-Automatismus ausschalten?
B) Wie kann ich einen Dateinamen mit den speziellen Parametern erweitern wenn Leerzeichen enthalten sind?
C) Gibt es spezielle Parameter für Dateinamen ohne Erweiterung?

Oder habe ich was übersehen?

Andernsfalls wäre es vielleicht hilfreich wenn diese Spezialfälle mit in der Hilfe unter "Dialogbox: Konfigurieren - Buttonbar ändern" stehen?
Tom - #81178 - 5 User licence - Klugheit, Gerechtigkeit, Tapferkeit und Mäßigung plus Kooperation.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50625
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Der Automatismus lässt sich nicht abschalten. Benutzen Sie stattdessen den separaten Namen und die Extension %O%E, also
?"%O%E.ini"
Author of Total Commander
https://www.ghisler.com
User avatar
tom*de
Senior Member
Senior Member
Posts: 394
Joined: 2003-02-25, 09:21 UTC

Post by *tom*de »

Super, danke sehr.

Damit passt "%P%O.%E" universell statt %P%N für alle Fälle von Dateinamen und Pfaden.

Ich fände einen Hinweis in der Hilfe nützlich, (wie bei %S) dass bei %N Namen, die Leerzeichen enthalten, von doppelten Anführungszeichen umgeben werden.

Während %P %O %E bei Leerzeichen keine Anführungszeichen einfügen (was mir persönlich besser gefällt)
Tom - #81178 - 5 User licence - Klugheit, Gerechtigkeit, Tapferkeit und Mäßigung plus Kooperation.
Post Reply