Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как определить, есть ли в системных путях (где либо) нужнй файл? [D7, Win95/98, WinME, NT4, Win2k, WinXP]


w666w ©   (2003-08-27 18:55:00) 

Сабж....


w666w   (2003-08-28 15:04:00) [1]

Спасибо за пост, jack128. Очень помогло.


jack128   (2003-08-27 23:37:00) [2]

первые две строки, естественно, такие
var
hLib : Thandle;
begin
hLib = LoadLibrary(Pchar(Filename));


jack128   (2003-08-27 23:35:00) [3]

можно сделать так
var
hLib = LoadLibrary(Pchar(Filename));
begin
Result := hLib <> 0;
if Result then
begin
FreeLibrary(hLib);
Exit;
end;
Result := GetLastError = ERROR_BAD_EXE_FORMAT;
end;
суть в том что функция LoadLibrary как раз и ищет файk в системном катологе, в путях указанных в переменных окружения и тд


Rouse_   (2003-08-27 20:30:00) [4]

Хм, как и говорил инет у меня дерьмо, пока писал ситуация прояснилась...


Rouse_   (2003-08-27 20:27:00) [5]

Мда.... уж...
Неисповедимы пути.... системные...
Встроенных функций есть, смотря для чего?
Если просто найти файл то см. > Reindeer Moss Eater © (27.08.03 19:27) [3], если попытка определения кодеков или наличия драйверов, то вопрос должен выглядеть глубже.
А переменные среды можно найти в FAQ (предупреждая следующий вопрос)

Желаю успехов


w666w   (2003-08-27 20:21:00) [6]

Пока писал уже дали ответ: GetWindowsSysDir.....
Именно это мне и нужно:
if FileExists (GetWindowsSysDir + "filename.dll")
и т.п.


Reindeer Moss Eater   (2003-08-27 20:19:00) [7]

1.GetEnvironmentVariable
2.GetWindowsDirectory,GetWindowsSysDir.....


w666w   (2003-08-27 20:19:00) [8]

В общем суть проблемы поподробнее:
проект использует Indy для соединения по SSL. SSL библиотека находится в 2-х dll"ках, и возможно их подгрузить или нет, становится понятным только при попытке соединения.

Хочется сделать проверку при старте, есть ли эти файлы в системных путях, однако сканить весь винт никак нерационально, иначе овчинка выделки не стоит. Подскажите, как определить, возможна ли подгрузка этих dll"ок при затрате как можно меньшего кол-ва ресурсов (и ЦПУ, и времени, и винта).


Reindeer Moss Eater   (2003-08-27 20:17:00) [9]

Кстати, что такое "системные пути"?
Это "пути" или "системные каталоги"?


Reindeer Moss Eater   (2003-08-27 20:15:00) [10]

Они в переменных окружения записаны.


w666w   (2003-08-27 20:11:00) [11]

Ну хорошо, тогда каким образом возможно узнать все системные пути?


Reindeer Moss Eater   (2003-08-27 19:27:00) [12]

FindFirst,FindNext,FindClose (и не только в системных путях)


w666w   (2003-08-27 19:21:00) [13]

Хороший ответ. Это понятно. А какие нибудь быстрые функцие встроенные есть (для быстрого поиска в системных путях)?


Reindeer Moss Eater   (2003-08-27 19:18:00) [14]

Попробовать найти его


Наверх

Титульная страница Поиск, карта сайта Написать письмо