Wie TC den Ort der INI-Datei ermittelt

Aus TCWikide
Wechseln zu: Navigation, Suche

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.