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

Вниз

Как определить, есть ли в системных путях (где либо) нужнй файл?   Найти похожие ветки 

 
w666w   (2003-08-27 18:55) [0]

Сабж....


 
Reindeer Moss Eater ©   (2003-08-27 19:18) [1]

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


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

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


 
Reindeer Moss Eater ©   (2003-08-27 19:27) [3]

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


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

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


 
Reindeer Moss Eater ©   (2003-08-27 20:15) [5]

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


 
Reindeer Moss Eater ©   (2003-08-27 20:17) [6]

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


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

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


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

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

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


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

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


 
Rouse_ ©   (2003-08-27 20:27) [10]

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

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


 
Rouse_ ©   (2003-08-27 20:30) [11]

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


 
jack128 ©   (2003-08-27 23:35) [12]

можно сделать так
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 в системном катологе, в путях указанных в переменных окружения и тд


 
jack128 ©   (2003-08-27 23:37) [13]

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


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

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



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

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

Наверх




Память: 0.49 MB
Время: 0.016 c
1-8349
NikolayP
2003-10-23 09:50
2003.11.03
Компиляция


3-8269
vidiv
2003-10-14 06:00
2003.11.03
Решение задач по FoxPro


3-8293
Term
2003-10-13 17:26
2003.11.03
Как синхронизировать данные на клиентах...


7-8696
Карелин Артем
2003-08-22 11:19
2003.11.03
Работа компонента внутри потока.


1-8506
Brat-2
2003-10-23 07:45
2003.11.03
ShellExecute & POST