![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получение директории программы [D7]
3asys © (2012-07-29 00:16:00)Добрый день,
есть Программа 1. В ней используется Функция получения каталога программы.Программа 1 запускается из Программы 2 посредством скрипта. При этом Функция возвращает директорию Программы 2.
В качестве Функции использовалось GetDir, ExtractFilePath(Paramstr(0) и т.п. - с одинаковым результатом.
Хотелось бы получить директорию Программы 1. Как это можно сделать?
Ega23 (2012-08-13 20:51:00) [21]
> Надо копать глубже: на кой леший кому-то знать с какого
> места запускается некий процесс?
Ну, к примеру, я туда кладу "всякое" относительно exe
Dennis I. Komarov (2012-08-13 20:17:00) [22]Надо копать глубже: на кой леший кому-то знать с какого места запускается некий процесс?
Ega23 (2012-08-13 19:21:00) [23]
> У меня нормально все работает (сейчас проверил на Д2010).
У приложения может не быть объекта Application. Например, у консольного приложения.
ParamStr(0) - будет и у консольного.
sairex (2012-08-13 17:11:00) [24]Хммм незнаю незнаю.
У меня нормально все работает (сейчас проверил на Д2010).
Anatoly Podgoretsky (2012-08-13 16:31:00) [25]
> AV © (08.08.12 16:26) [14]
> дык, вроде Path то автору и не известен?
В таких случаях поступают следующим образом, поскольку это связаные программы, то их помещают в одну папку, или борятся с причинами, то есть ССЗБ.
stas (2012-08-13 16:26:00) [26]ExtractFilePath(Paramstr(0))
Вернет путь к программе, которая в данный момент запущена, и по другому быть не может. Покажите код где она возвращает путь не правильно.
Sairex (2012-08-13 16:17:00) [27]Хммм. может в ExtractFilepath(Application.exename) - вроде как возвращает путь.
AV (2012-08-08 16:26:00) [28]дык, вроде Path то автору и не известен?
Anatoly Podgoretsky (2012-08-08 15:36:00) [29]
> если в путях прописать
Не обязательно.
cd Path
prog.exe
AV (2012-08-08 15:17:00) [30]ну да,
если в путях прописать
или алиас создать, если антивирус не обругает
Anatoly Podgoretsky (2012-08-08 15:06:00) [31]Путь совсем не обязательно знать. Запускать можно и без пути prog.exe
oldman (2012-08-08 12:32:00) [32]Если Программа2 не знает путь к Программа1, как она ее запускает?
Dennis I. Komarov (2012-08-05 21:10:00) [33]
> Как-то так.
Как-то бред...
Кибальчиш (2012-08-05 11:54:00) [34]На а если так:
1. Программа 2 создает ini файл в директории Программы 1 и записывает в него путь к своей директории (ExtractFilePath(ParamStr(0) + 'my.ini')
2. Когда Программа 1 запускается, она просто читает путь из ini, который находится в одной с ней директории (ParamStr(0) + 'my.ini')
Как-то так.
Плохиш (2012-07-30 00:15:00) [35]
> Dennis I. Komarov © (29.07.12 22:56) [6]
>
>
> > Плохиш © (29.07.12 01:25) [5]
>
> А где же справка? :)
Ну звиняйте, нету у меня справки на таблете.
Dennis I. Komarov (2012-07-29 22:56:00) [36]
> Плохиш © (29.07.12 01:25) [5]
А где же справка? :)
Плохиш (2012-07-29 01:25:00) [37]
> ExtractFilePath(Paramstr(0)
Возвращает путь к текущему файлу exe. Т.ч. не надо нам здесь врать.
3asys (2012-07-29 01:19:00) [38]к сожалению, похоже, что не напутал.
Функция определения директории программы используется для доступа к INI-файлу. Если запускаю Программу 1 руками, то все нормально, если Программа 1 запускается скриптом из Программы 2, то INI-файл не находится, а проверка показывает, что функция определения директории из Программы 1 возвращает директорию Программы 2.
Поэтому и написал на форум, - может кто сталкивался?
AV (2012-07-29 00:46:00) [39]Вы просто Андерсен...
А ничего не напутали?
3asys (2012-07-29 00:33:00) [40]Нет, Программе 2 ничего передавать не нужно. Нужно, чтобы Программа 2 просто запустила Программу 1 и забыла о ней, а Программа 1 в процессе своей работы получила путь к своей директории. Но запускаемая в Программе 1 функция (в том числе и GetCurrentDir) возвращает Программе 1 путь не к ее директории, а к директории Программы 2
Вот что с этим делать?