Alextp
|
Posted: Sun Feb 06, 2005 18:37 Post subject: Пример кода |
|
|
Предлагаю 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 |
|