Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: [ Статья ] Находим местоположение WINCMD.INI 
Author Message
Alextp



PostPosted: Sun Feb 06, 2005 18:37    Post subject: Пример кода Reply with quote

Предлагаю Delphi-функции нахождения путей к wincmd.ini и wcx_ftp.ini.
Из исходника TC Plugins Manager, в нем все работает. Если путь, возвращаемый функцией, не найден, то программа запрашивает путь у пользователя.

Модули RegProc.pas/SProc.pas, которые здесь используются, высылаются емейлом.

Code:
function tcDefDir: string;
begin
  //поправка SAM-а, чтобы путь брался из запущенного TC
  Result:= SProc.SExpandVars('%COMMANDER_PATH%');
  //брать из реестра
  if Pos(':\', Result)=0 then
  Result:=
    GetRegKeyStr(HKEY_CURRENT_USER, 'Software\Ghisler\Total Commander', 'InstallDir',
    GetRegKeyStr(HKEY_LOCAL_MACHINE, 'Software\Ghisler\Total Commander', 'InstallDir',
      'C:\TotalCmd'));
end;

function tcDefExe: string;
begin
  Result:= tcDefDir+'\Totalcmd.exe';
end;

function tcDefIni: string;
begin
  Result:=
    GetRegKeyStr(HKEY_CURRENT_USER, 'SOFTWARE\Ghisler\Total Commander', 'IniFileName',
    GetRegKeyStr(HKEY_LOCAL_MACHINE, 'SOFTWARE\Ghisler\Total Commander', 'IniFileName',
    'wincmd.ini'));
  if Pos('\', Result)=0 then Insert('%windir%\', Result, 1);
  //если путь записан как ".\Wincmd.ini":
  if Pos('.\', Result)=1 then
    SReplace(Result, '.', tcDefDir);
  Result:= SExpandVars(Result);
end;

function tcDefIniFtp: string;
begin
  Result:=
    GetRegKeyStr(HKEY_CURRENT_USER, 'SOFTWARE\Ghisler\Total Commander', 'FtpIniName',
    GetRegKeyStr(HKEY_LOCAL_MACHINE, 'SOFTWARE\Ghisler\Total Commander', 'FtpIniName',
    'wcx_ftp.ini'));
  if Pos('\', Result)=0 then Insert('%windir%\', Result, 1);
  //если путь записан как ".\Wincmd.ini":
  if Pos('.\', Result)=1 then
    SReplace(Result, '.', tcDefDir);
  Result:= SExpandVars(Result);
end;

_________________
UniViewer - CudaText - LogViewer


Last edited by Alextp on Wed Oct 19, 2005 23:40; edited 2 times in total
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group