Главная страница
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.012 c
3-1248170873
Mery
2009-07-21 14:07
2010.11.28
удаление повторяющихся записей в таблице


15-1282209590
antonn
2010-08-19 13:19
2010.11.28
найти все строки в проекте, эксперт для IDE?


2-1283751565
И. Павел
2010-09-06 09:39
2010.11.28
При SetWindowRgn заголовок окна меняет стиль на Win98


15-1282027455
trw
2010-08-17 10:44
2010.11.28
как узнать автора файла


2-1283846165
DROWSY
2010-09-07 11:56
2010.11.28
Как можно редактировать набор из связанных таблиц?