Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.005 c
15-1282541332
12
2010-08-23 09:28
2010.11.28
Сообщения. Уведомления об изменениях других окон


15-1280817234
Медвежонок Пятачок
2010-08-03 10:33
2010.11.28
Сомалийское пирацтво. Все очень просто.


2-1283843667
Илья К.
2010-09-07 11:14
2010.11.28
AV при использовании IBUpdateSQLW


2-1283425358
bostar
2010-09-02 15:02
2010.11.28
про пиктограммы


15-1282465743
Alex Konshin
2010-08-22 12:29
2010.11.28
Windows 7 Update глюк отрубает RAID диски и может вызвать BSOD




   Наверх