Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.11.28;
Скачать: CL | DM;

Вниз

Kак преобразовать путь программы   Найти похожие ветки 

 
Делфиец   (2010-09-05 09:10) [0]

Есть программы у которых путь задан таким образом "%SystemRoot%\system32\" ....  есть ли в стандартном наборе делфи функция котора возращает полный путь?


 
Leonid Troyanovsky ©   (2010-09-05 09:41) [1]


> Делфиец   (05.09.10 09:10)  

> ....  есть ли в стандартном наборе делфи функция котора
> возращает полный путь?

Windows.ExpandEnvironmentStrings

--
Regards, LVT.


 
Делфиец   (2010-09-05 10:06) [2]

Да в действительности сам вопрос туповатый.
Код своей функции получислся то из двух строчек:

function ExtractSystemRoot(Path: String): String;
var
 SystemRoot : String;
begin
 SystemRoot := GetEnvironmentVariable("SystemRoot");
 Result := StringReplace(Path,"%SystemRoot%", SystemRoot,[rfIgnoreCase]);
end;


 
Leonid Troyanovsky ©   (2010-09-05 10:37) [3]


> Делфиец   (05.09.10 10:06) [2]

> Да в действительности сам вопрос туповатый.

В пути может быть и не одна переменная окружения, отсюда и ..Strings.

function ExpandPath(const EPath: String): String;
var
 buf: array [0..MAX_PATH] of Char;
begin
 Win32Check(ExpandEnvironmentStrings(PChar(EPath), buf, MAX_PATH) <> 0);
 Result := buf;
end;

--
Regards, LVT.


 
DVM ©   (2010-09-05 20:10) [4]

С этими SystemRoot и прочими надо быть очень внимательным, особенно при запуске 32 разрядной программы в 64 бит окружении. При отключении перенаправления файлового-ввода ввывода, ExpandEnvironmentStrings возвращает неверные по сути пути.

Также в реестре встречаются пути %folder% которых нет среди переменных окружения.
Еще иногда в реестре встречаются SystemRoot и подобные пути без символов %.


 
Делфиец   (2010-09-09 19:02) [5]


> DVM ©   (05.09.10 20:10) [4]


Впринципе любой возвращенный путь можно проверить через FileExists()
Поиск файлов из реестра это полный бред, как раз это  мне  и нужно реализовать.


 
Anatoly Podgoretsky ©   (2010-09-09 19:08) [6]

То есть тебе нужно реализовать бред.



Страницы: 1 вся ветка

Текущий архив: 2010.11.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
2-1283506544
alles
2010-09-03 13:35
2010.11.28
Проблема с формами в разных dll


15-1282556497
vajo
2010-08-23 13:41
2010.11.28
Блок питания.


2-1283663438
Делфиец
2010-09-05 09:10
2010.11.28
Kак преобразовать путь программы


2-1284144181
flasher
2010-09-10 22:43
2010.11.28
Проблема с дочерними mdi окнами


2-1283683267
Hapastiks
2010-09-05 14:41
2010.11.28
заголовок сообщения