Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизПолучение директории программы Найти похожие ветки
← →
3asys © (2012-07-29 00:16) [0]Добрый день,
есть Программа 1. В ней используется Функция получения каталога программы.Программа 1 запускается из Программы 2 посредством скрипта. При этом Функция возвращает директорию Программы 2.
В качестве Функции использовалось GetDir, ExtractFilePath(Paramstr(0) и т.п. - с одинаковым результатом.
Хотелось бы получить директорию Программы 1. Как это можно сделать?
← →
Smile (2012-07-29 00:22) [1]Например, программа 1 может передать GetCurrentDir 2-й программе в качестве параметра.
← →
3asys © (2012-07-29 00:33) [2]Нет, Программе 2 ничего передавать не нужно. Нужно, чтобы Программа 2 просто запустила Программу 1 и забыла о ней, а Программа 1 в процессе своей работы получила путь к своей директории. Но запускаемая в Программе 1 функция (в том числе и GetCurrentDir) возвращает Программе 1 путь не к ее директории, а к директории Программы 2
Вот что с этим делать?
← →
AV © (2012-07-29 00:46) [3]Вы просто Андерсен...
А ничего не напутали?
← →
3asys © (2012-07-29 01:19) [4]к сожалению, похоже, что не напутал.
Функция определения директории программы используется для доступа к INI-файлу. Если запускаю Программу 1 руками, то все нормально, если Программа 1 запускается скриптом из Программы 2, то INI-файл не находится, а проверка показывает, что функция определения директории из Программы 1 возвращает директорию Программы 2.
Поэтому и написал на форум, - может кто сталкивался?
← →
Плохиш © (2012-07-29 01:25) [5]
> ExtractFilePath(Paramstr(0)
Возвращает путь к текущему файлу exe. Т.ч. не надо нам здесь врать.
← →
Dennis I. Komarov © (2012-07-29 22:56) [6]
> Плохиш © (29.07.12 01:25) [5]
А где же справка? :)
← →
Плохиш © (2012-07-30 00:15) [7]
> Dennis I. Komarov © (29.07.12 22:56) [6]
>
>
> > Плохиш © (29.07.12 01:25) [5]
>
> А где же справка? :)
Ну звиняйте, нету у меня справки на таблете.
← →
Кибальчиш (2012-08-05 11:54) [8]На а если так:
1. Программа 2 создает ini файл в директории Программы 1 и записывает в него путь к своей директории (ExtractFilePath(ParamStr(0) + "my.ini")
2. Когда Программа 1 запускается, она просто читает путь из ini, который находится в одной с ней директории (ParamStr(0) + "my.ini")
Как-то так.
← →
Dennis I. Komarov © (2012-08-05 21:10) [9]
> Как-то так.
Как-то бред...
← →
oldman © (2012-08-08 12:32) [10]Если Программа2 не знает путь к Программа1, как она ее запускает?
← →
Anatoly Podgoretsky © (2012-08-08 15:06) [11]Путь совсем не обязательно знать. Запускать можно и без пути prog.exe
← →
AV © (2012-08-08 15:17) [12]ну да,
если в путях прописать
или алиас создать, если антивирус не обругает
← →
Anatoly Podgoretsky © (2012-08-08 15:36) [13]
> если в путях прописать
Не обязательно.cd Path
prog.exe
← →
AV © (2012-08-08 16:26) [14]дык, вроде Path то автору и не известен?
← →
Sairex © (2012-08-13 16:17) [15]Хммм. может в ExtractFilepath(Application.exename) - вроде как возвращает путь.
← →
stas © (2012-08-13 16:26) [16]ExtractFilePath(Paramstr(0))
Вернет путь к программе, которая в данный момент запущена, и по другому быть не может. Покажите код где она возвращает путь не правильно.
← →
Anatoly Podgoretsky © (2012-08-13 16:31) [17]
> AV © (08.08.12 16:26) [14]
> дык, вроде Path то автору и не известен?
В таких случаях поступают следующим образом, поскольку это связаные программы, то их помещают в одну папку, или борятся с причинами, то есть ССЗБ.
← →
sairex © (2012-08-13 17:11) [18]Хммм незнаю незнаю.
У меня нормально все работает (сейчас проверил на Д2010).
← →
Ega23 © (2012-08-13 19:21) [19]
> У меня нормально все работает (сейчас проверил на Д2010).
У приложения может не быть объекта Application. Например, у консольного приложения.
ParamStr(0) - будет и у консольного.
← →
Dennis I. Komarov © (2012-08-13 20:17) [20]Надо копать глубже: на кой леший кому-то знать с какого места запускается некий процесс?
← →
Ega23 © (2012-08-13 20:51) [21]
> Надо копать глубже: на кой леший кому-то знать с какого
> места запускается некий процесс?
Ну, к примеру, я туда кладу "всякое" относительно exe
← →
Dennis I. Komarov © (2012-08-13 20:53) [22]
> Ну, к примеру, я туда кладу "всякое" относительно exe
И какого? Лично я против, что бы юзерам каталог с exe был доступен для записи и модификации... Места больше нет?
← →
ProgRAMmer Dimonych © (2012-08-13 21:42) [23]> [22] Dennis I. Komarov © (13.08.12 20:53)
> > Ну, к примеру, я туда кладу "всякое" относительно exe
> И какого? Лично я против, что бы юзерам каталог с exe был
> доступен для записи и модификации... Места больше нет?
А юзеры против того, чтобы программа писала неизвестно куда. Особенно во всякие Application Data на системном диске: сколько ни отведи - всё мало.
← →
Inovet © (2012-08-13 22:39) [24]> [23] ProgRAMmer Dimonych © (13.08.12 21:42)
> А юзеры против того, чтобы программа писала неизвестно куда.
> Особенно во всякие Application Data на системном диске
Дать возможность выбора.
← →
Dennis I. Komarov © (2012-08-13 22:45) [25]
> А юзеры против того, чтобы программа писала неизвестно куда.
> Особенно во всякие Application Data на системном диске:
> сколько ни отведи - всё мало.
А они юзеры, их никто не спрашивает... И ни кто не говорил, куда надо (только намекали), но там где exe-шник, там юзерам только читать...
← →
antonn © (2012-08-13 23:24) [26]с одной стороны на терминальном сервере это может быть чревато, но все же соглашусь что юзеров никто не спрашивает, не нравится поведение софта - не ставь
← →
antonn © (2012-08-13 23:27) [27]
> с одной стороны на терминальном сервере это может быть чревато
но я, в таком случае, стараюсь выполнять установку софта в roam юзера, софт при этом пишет также в свою директорию, пусть и расходуется больше дискового пространства на сервере
← →
Dennis I. Komarov © (2012-08-13 23:38) [28]
> с одной стороны на терминальном сервере это может быть чревато
Чем терминальный сервер при этом отличается?
← →
antonn © (2012-08-13 23:43) [29]
> Чем терминальный сервер при этом отличается?
тем, что в отличии от многопользовательской рабочей станции на одну сессию в терминалке сразу несколько пользователей работают. Это в плане расположения программы в общем каталоге типа c:\soft\
← →
antonn © (2012-08-13 23:48) [30]т.е. я "за" запись в каталог с программой, если вдруг меня кто не так понял :)
← →
Dennis I. Komarov © (2012-08-14 00:06) [31]
> тем, что в отличии от многопользовательской рабочей станции
> на одну сессию в терминалке сразу несколько пользователей
> работают.
о какой сессии идет речь? терминальный виндовый сервер делает сессию на каждое удаленное подключение...
← →
antonn © (2012-08-14 01:18) [32]что будет если все пользователи на терминале пользуются программой из C:\soft\, и она в процессе работы делает запись в свой каталог? вот про это я и говорю, вот недавно обсуждали похожее - http://delphimaster.net/view/15-1344432770/
← →
Германн © (2012-08-14 01:29) [33]Имхо проблема автора так и не понятна из-за того что у него 2 программы и при этом программа, в которой он пытается получить некий путь запускается из другой программы "посредством скрипта".
← →
Германн © (2012-08-14 01:32) [34]
> Inovet © (13.08.12 22:39) [24]
>
> > [23] ProgRAMmer Dimonych © (13.08.12 21:42)
> > А юзеры против того, чтобы программа писала неизвестно
> куда.
> > Особенно во всякие Application Data на системном диске
>
> Дать возможность выбора.
Лично я за то, чтобы MS дала простую возможность администратору выбрать диск, на котором будут располагаться папки пользователей и личные папки программ. Но сомневаюсь, что MS на это согласится при моей жизни. :(
← →
ProgRAMmer Dimonych © (2012-08-14 08:48) [35]> [34] Германн © (14.08.12 01:32)
> > Inovet © (13.08.12 22:39) [24]
> > > [23] ProgRAMmer Dimonych © (13.08.12 21:42)
> > > А юзеры против того, чтобы программа писала неизвестно куда.
> > > Особенно во всякие Application Data на системном диске
> > Дать возможность выбора.
> Лично я за то, чтобы MS дала простую возможность администратору
> выбрать диск, на котором будут располагаться папки пользователей
> и личные папки программ. Но сомневаюсь, что MS на это согласится
> при моей жизни. :(
Для MS проще отвести для этого место на системном диске, как и программисту проще писать в каталог своей программы :)
← →
Inovet © (2012-08-14 09:54) [36]> [34] Германн © (14.08.12 01:32)
А разве это нельзя делать?
← →
Андреевич (2012-08-14 19:04) [37]
> Лично я за то, чтобы MS дала простую возможность администратору
> выбрать диск, на котором будут располагаться папки пользователей
> и личные папки программ. Но сомневаюсь, что MS на это согласится
> при моей жизни. :(
я не знаю о чем ты конкрентно говоришь, возможно речь идет о десктопах, но вот смотрю прям сейчас на терминальном сервере (2008) профиля юзеров на отдельном диске идут. Хотя, может опять какая виртуализация
← →
brother © (2012-08-14 19:06) [38]> на терминальном сервере (2008) профиля юзеров на отдельном
> диске идут
это же настраивается...
← →
Dennis I. Komarov © (2012-08-14 20:13) [39]
> что будет если все пользователи на терминале пользуются
> программой из C:\soft\, и она в процессе работы делает запись
> в свой каталог?
ничего хорошего...
← →
antonn © (2012-08-14 23:59) [40]
> brother © (14.08.12 19:06) [38]
>
> > на терминальном сервере (2008) профиля юзеров на отдельном
> > диске идут
>
> это же настраивается...
и я про это же говорю
Страницы: 1 2 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.58 MB
Время: 0.077 c