Wie TC den Ort der INI-Datei ermittelt
Auf dieser Seite handelt es sich um wie Total Commander den Ort der INI-Datei ermittelt.
Kommandozeilenparameter
Wenn man Total Commander mit dem Kommandozeilenparameter /i=, /f= oder beiden startet, so wird die angebene ini-Datei benutzt, wobei /i= den Ort und Namen der wincmd.ini und /f= den Ort und Namen der wcx_ftp.ini festlegen:
c:\totalcmd\totalcmd.exe /i=c:\eigene Dateien\meine.ini /f=d:\download\FTP.ini
würde also den Total Commander mit der 'meine.ini' als wincmd.ini und 'FTP.ini' als wcx_ftp.ini starten.
Auf diese Weise kann man den TC dazu bringen, die FTP-Einstellungen nicht in einer separaten Datei, sondern mit in die wincmd.ini zu speichern:
c:\totalcmd\totalcmd.exe /i=c:\eigene Dateien\meine.ini /f=c:\eigene Dateien\meine.ini
Diese Kommandozeilenparameter 'überschreiben' alle anderen Einstellunge bezüglich der Ini-Dateien.
Achtung: | Wenn der übergebene Pfad unsinnig ist - z.B. auf ein CD-Rom Laufwerk weist oder einen nicht existierenden Laufwerksbuchstaben oder Pfad benutzt -, dann startet der Total Commander dennoch mit dieser Einstellung, aber Änderungen an der Ini-Datei sind dann natürlich nicht möglich.
Sollte jedoch nur die ini-Datei fehlen, so wird diese automatisch beim Start angelegt. |
UseIniInProgramDir
Wird der Total Commander ohne Kommandozeilenparameter gestartet, prüft er zunächst, ob sich im Programmverzeichnis eine Datei "wincmd.ini" mit dem Schlüssel "UseIniInProgramDir" im Abschnitt [Configuration] befindet, dessen Wert größer als Null ist.
UseIniInProgramDir=1 | Falls in der Registry keine anderen Angaben stehen, wird die die wcx_ftp.ini im %windir% - meist c:\Windows und die wincmd.ini im Programmverzeichnis benutzt. |
UseIniInProgramDir=2 | Falls in der Registry keine anderen Angaben stehen, wird die die wincmd.ini im %windir% - meist c:\Windows und die wcx_ftp.ini im Programmverzeichnis benutzt. |
UseIniInProgramDir=3 | Falls in der Registry keine anderen Angaben stehen, werden die wincmd.ini und die wcx_ftp.ini im Programmverzeichnis benutzt. |
UseIniInProgramDir=4 | Die Einstellungen in der Registry werden übergangen, und es werden die wincmd.ini und die wcx_ftp.ini im %windir% - meist c:\Windows - benutzt |
UseIniInProgramDir=5 | Die Einstellungen in der Registry werden übergangen, und es wird die die wcx_ftp.ini im %windir% - meist c:\Windows und die wincmd.ini im Programmverzeichnis benutzt. |
UseIniInProgramDir=6 | Die Einstellungen in der Registry werden übergangen, und es wird die die wincmd.ini im %windir% - meist c:\Windows und die wcx_ftp.ini im Programmverzeichnis benutzt. |
UseIniInProgramDir=7 | Die Einstellungen in der Registry werden übergangen, und es werden die wincmd.ini und die wcx_ftp.ini im Programmverzeichnis benutzt. |
Einstellungen in der Registry
Wenn der Total Commander installiert wird, dann legt er folgende Schlüssel an:
HKEY_CURRENT_USER\Software\Ghisler\Total Commander
und
HKEY_LOCAL_MACHINE\SOFTWARE\Ghisler\Total Commander
Dort werden jeweils die Werte
InstallDir | mit dem Pfad zum Total Commander Installationsverzeichnis |
IniFileName | mit dem Pfad und Namen zur wincmd.ini |
FtpIniName | mit dem Pfad und Namen zur wcx_ftp.ini |
angelegt.
Wenn der TC ohne Kommandozeilenparameter gestartet wird und der Eintrag UseIniInProgramDir nichts anderes bestimmt, dann wird zunächst im HKEY_CURRENT_USER nachgesehen, ob dort ein Eintrag für den Ort der Ini-dateien existiert. Wenn dies der Fall ist, dann wird dieser Eintrag benutzt. Wenn dort kein Eintrag existiert, dann wird im HKEY_LOCAL_MACHINE nachgesehen, ob dort ein Eintrag existiert und dieser ggf. benutzt.
Man kann diese Einträge auch nachträglich ändern, entweder von Hand im Registrierungseditor oder mit einem der Registry-Filesystem Plugins. Oder aber mit dem separaten Programm inireloc.exe, verfügbar auf www.ghisler.com unter Zubehör.
Achtung: | Wenn der Pfad unsinnig ist - z.B. auf ein CD-Rom Laufwerk weist oder einen nicht existierenden Laufwerksbuchstaben oder Pfad benutzt -, dann startet der Total Commander dennoch mit dieser Einstellung, aber Änderungen an der Ini-Datei sind dann natürlich nicht möglich.
Sollte jedoch nur die ini-Datei fehlen, so wird diese automatisch beim Start angelegt. |
Keine Voreinstellung
Wenn weder Kommandozeilenparameter, UseIniInProgramdir noch ein Registryeintrag den Ort der Ini-Datei vorgeben, werden die ini-Dateien im %windir% - meist c:\windows - benutzt bzw. erstellt. Sollte man für dieses Verzeichnis keine Schreibrechte besitzen, ist es sinnvoll, den Ort der ini-Datei nachträglich zu verändern (siehe 3. Einstellungen in der Registry) .
%Commander_path%
Obwohl man für die Pfadangabe zu den ini-Dateien die Variable %Commander_Path% benutzen könnte ist davon dringend abzuraten. Stattdessen sollte man den Ausdruck .\ der vom TC genauso ausgewertet wird, so dass
Totalcmd.exe /i=%Commander_path%\wincmd.ini
in der Regel die gleiche Ini-Datei benutzt wie
Totalcmd.exe /i=.\wincmd.ini.
Es sei denn, der Pfad zum Programmverzeichnis enthält Leerzeichen. Dann benötigt die Angabe mit %Commander_path% umschließende Anführungszeichen um auf die gleiche Datei zu verweisen.
Bei den Angaben in der Registry hat die Verwendung %Commander_Path% allerdings fatale Folgen bei einem Update. Da beim Start des Installationsprogramms alle TC Instanzen geschlossen sein müssen, ist die %Commander_path% leer, was zuverlässig zum Absturz des Installationsprogramms führt.