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

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

Получение директории программы [D7]


Страницы:   1 2 3

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
Вот что с этим делать?


Страницы:   1 2 3

Наверх

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