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
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
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
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