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

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

Получение пути [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


Наверх

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