![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получение пути [D5, Win95/98, NT4]
OlDemon © (2002-06-21 07:21:00)Уважаемые, мастаки!
Как получить путь откуда была запущена моя программа?
Заранее спасибо.
Юрий Зотов (2002-06-21 11:58:00) [1]1. Каталог, в котором хранится Exe-файл программы - это одно. Его дает Application.ExeName, Params(0) и пр.
2. Каталог, откуда она была запущена - совсем другое. Это так называемый стартовый каталог - тот, который становится для нее текущим сразу после ее запуска. Указывается в ярлыке. Чаще всего совпадает с каталогом саиого Exe-файла, но не обязательно.
3. Текущий каталог программы - это тот, который является для нее текущим в ДАННЫЙ момент времени. Может меняться во время ее работы сколько угодно раз и поэтому может быть любым. Его дает GetCurrentDir.
PVOzerski (2002-06-21 09:25:00) [2]2OlDemon © (21.06.02 09:06):
>GetCurrentDir выдает как раз то что мне нужно, не хотелось бы
>получить баги после внедрения программы.
Возьми, да запусти прогу из командной строки по полному пути (или предварительно прописав её в PATH) из другого каталога - почувствуешь разницу.
Anatoly Podgoretsky (2002-06-21 09:17:00) [3]Случаев совпадения каталогов текщего и программы очень много и кроме того они имеют тенденцию меняться во время работы программы.
OlDemon (2002-06-21 09:06:00) [4]2 panov>
Пожалуйста расскажи поподробнее в каком случае они будут отличаться. В принципе GetCurrentDir выдает как раз то что мне нужно, не хотелось бы получить баги после внедрения программы.
2 MBo>
Спасибо. Application.ExeName выдает то что надо (только надо будет обрезать само имя).
2 All>
В принципе возможно есть выход лучше, поэтому поподробней объясню что мне нужно. Когда я через Assign привязываюсь к файлу мне можно просто написать его имя (если этот файл в том же каталоге что и прога). Когда я открываю файл через Excel такое не проходит, а очень надо, т.к. прога будет лежать на сервере а до него у разных пользователей, разный путь. Поэтому мне нужно получить путь по какому пользователь запускает мою прогу.
Anatoly Podgoretsky (2002-06-21 09:05:00) [5]Nimble © (21.06.02 07:53)
Можно но не нужно, ну зачем нам текущий каталог?
panov (2002-06-21 08:03:00) [6]>Nimble © (21.06.02 07:53)
Текущий каталог и каталог, откуда запущена программа, могут отличаться.
Nimble (2002-06-21 07:53:00) [7]А можно просто GetCurrentDir;
MBo (2002-06-21 07:46:00) [8]Этот вопрос задается через день. Нужно использовать поиск
ParamStr(0) или Application.ExeName
если нужен путь без имени файла, примени к нему
ExtractFileDir
ExtractFilePath