Форум: "Начинающим";
Текущий архив: 2011.08.21;
Скачать: [xml.tar.bz2];
ВнизПоиск файла в путях переменной окружения Path Найти похожие ветки
← →
Gu (2011-05-08 02:14) [0]Нет ли какой готовой функции, которая может это делать? Что-то типа
Fn:=FinfFileEnv(FileName, PathStr);
где
PathStr - значение переменной окружения Path (получить можно например так: http://www.delphirus.com/modules.php?name=Pages&pa=showpage&pid=1785)
FileName - искомое имя файла, например "my.dll"
а Fn - возвращаемый результат, например "c:\windows\System32\my.dll"
← →
Германн © (2011-05-08 02:26) [1]
> Поиск файла в путях переменной окружения Path
А пардон, нафига такая функция нужна кому-то?
Path прописывается для того, чтобы можно было "запустить" исполняемый файл без указания пути к нему. Не запустился - значит либо нет файла, либо путь к нему не входит в Path.
← →
Gu (2011-05-08 02:40) [2]Мне нужна. Загружаются несколько длл с одинаковым именем, которые могут лежать в определенном месте или в папке проге или в путях переменной path. Нужно знать полный путь.
Почему а5 все сводится к вопросу "зачем"? :)
← →
Германн © (2011-05-08 02:55) [3]
> Почему а5 все сводится к вопросу "зачем"?
Потому, что не надо делать всё "через анус". DLL принято располагать либо в системной папке для dll, либо в папке с программой.
"Нужно знать полный путь." Ещё раз нафига?
P.S.
Ещё раз увижу а5 - отвечать более не буду.
← →
Gu (2011-05-08 03:18) [4]У меня библиотеки динамически загружаются, потому нужен полный путь. Это както повлияет на ответ - есть такая функция или нет?
← →
Германн © (2011-05-08 03:40) [5]
> Gu (08.05.11 03:18) [4]
>
> У меня библиотеки динамически загружаются, потому нужен
> полный путь.
Бред.
← →
Gu (2011-05-08 05:18) [6]ну это вы так думаете.
подсказали решение.
вот тут люди не спрашивают "зачем", не говорят "это тебе не надо", а сразу ответ пишут: http://stackoverflow.com/questions/5924755/file-search-in-paths-of-environment-variable-path
почему тут все по другому? не первый раз уже, просто обидно что на буржуинские форумы приходится лазить, а наши ... занимаются.
← →
Gu (2011-05-08 05:44) [7]
Function EnvFNS(Fn: string): string;
var SPPath:Array[0..255] of char;PathPtr:PChar;
begin
if SearchPath(nil, PChar(Fn), nil, 255, SPPath, PathPtr)>0 then Result:=StrPas(SPPath) else Result:=Fn;
end;
пример использования:
Showmessage(EnvFNS("notepad.exe"));
← →
Медвежонок Пятачок © (2011-05-08 07:18) [8]Загружаются несколько длл с одинаковым именем,
Ну если они разные, но одинаково называются, то как ты их отличишь если найдешь все?
Нашел ты десять mydll.dll в десяти разных местах - и что дальше?
← →
Anatoly Podgoretsky © (2011-05-08 10:14) [9]
> Gu (08.05.11 05:18) [6]
С тебя и "зачем" не вытянуть. Присоединяюсь к предыдущим анализом глупость и опасно.
← →
sniknik © (2011-05-08 11:07) [10]> Нашел ты десять mydll.dll в десяти разных местах - и что дальше?
он не найдет 10 этим способом, он найдет 1, ту которую бы использовал если бы просто сделал лоадлайбрари "не выделываясь".
но вопрос "что дальше?" остается, и еще вопрос, а ЗАЧЕМ это все? ну вот нашёл ты путь с которого лоадлайбрари загрузит dll а смысл? зачем лишние "телодвижения"?
> почему тут все по другому?
тут пытаются осмыслить проблему, а не заработать балов положительным ответом как на "потребительских" форумах. там на вопрос "дайте мне мыло и веревку" говорят "на". а здесь "зачем?" перед тем как дать, и приходится придумывать варианты типа "сейчас помоюсь и в горы!" попутно задумываясь "а реально ли мне именно этого нужно?".
← →
Игорь Шевченко © (2011-05-08 12:02) [11]SearhPath ?
← →
Игорь Шевченко © (2011-05-08 12:02) [12]SearchPath,
http://msdn.microsoft.com/en-us/library/aa365527(v=vs.85).aspx
← →
RTFM (2011-05-11 20:22) [13]> почему тут все по другому? не первый раз уже, просто обидно что на буржуинские форумы приходится лазить, а наши ... занимаются.
Потому что им лениво выпытывать у автора, чего ему на самом деле надо. А тут - нет.
Не надо писать всякую х.
Ну, заюзаешь ты SearchPath. Дальше что?
Ты учёл приоритет поиска? Нет.
Ты учёл настойку SafeSearch? Нет.
Ты учёл Dll Redirection? Нет.
Ты учёл SideBySide? Нет.
Итого - на пустом месте внёс в программу потенциальную брешь в безопасности, ибо грузишь DLL не оттуда, откуда её грузила бы система.
Мои поздравления с созданием очередной поделки.
← →
MBo © (2011-05-12 07:48) [14]offtop:
Автору в копилку - лучше англоязычных благодарить так - Thanks, it works.
Им будет понятнее.
← →
Anatoly Podgoretsky © (2011-05-12 09:29) [15]
> RTFM (11.05.11 20:22) [13]
Даже если на каком то этапе будет работать правильно, это не значит, что и завтра так будет.
← →
Anatoly Podgoretsky © (2011-05-12 09:31) [16]> RTFM (11.05.2011 20:22:13) [13]
> Потому что им лениво выпытывать у автора, чего ему на самом деле надо. А
> тут - нет.
Они считают само собой обычным, что запросчик предоставляет всю необходимую
информацию, понятным языком и не скажут при этом что автор дурак
необразованый.
← →
sniknik © (2011-05-12 10:41) [17]> Они считают само собой обычным
http://bash.org.ru/quote/410956
ага, и тут на полном серьезе ответят - звоните в поддержку. или - вызовите мастера.
← →
Anatoly Podgoretsky © (2011-05-12 11:52) [18]А чего можно ответить на вопрос "Помогите не работает"
← →
Anatoly Podgoretsky © (2011-05-12 18:35) [19]А наши пытаются помочь, и если не получится, то хотя бы поразлекаться.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.08.21;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.004 c