Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.11.28;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.003 c
2-1283683267
Hapastiks
2010-09-05 14:41
2010.11.28
заголовок сообщения


15-1282541332
12
2010-08-23 09:28
2010.11.28
Сообщения. Уведомления об изменениях других окон


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


2-1283274103
oleg_teacher
2010-08-31 21:01
2010.11.28
sql+if


15-1282595385
Юрий
2010-08-24 00:29
2010.11.28
С днем рождения ! 24 августа 2010 вторник





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский