slavic |
Отправлено: 25.03.2007, 11:48 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 6
|
вопрос может быть и немного выходит за рамки раздела, но задам его здесь.
в с++ есть такое понятие как "текущая директория", ее можно получать и задавать функциями типа GetCurrentDir() и SetCurrentDir().
проблема возникла в следующем, есть 2 приложения, второе запускается сразу за первым. каким образом сделать так, чтобы 1ое (написаное на билдере, исходники его можно редактировать) в конце своей работы устанавливало "текущую директорию" , а 2ое (его пофиксить уже никак нельзя, оно вроде написано на делфях) — в котором есть стандартные вещи типа opendialog, считало initial directory как раз ту "текущую директорию", которую в конце своей работы установило 1ое приложение.
где копать? есть подозрения на реестр, но выжать из него ничего не смог..
еще раз повторю, если бы можно было менять исходники обоих приложений — вопрос решался бы очень просто , например, записью текущей директории в файл. в моем случае я второе приложение изменять не могу.
PS. как показали практические исследования функция SetCurrentDir()работает только для текущего приложения. на второе она никак не влияет
Отредактировано slavic — 25.03.2007, 13:47 |
|
Admin |
Отправлено: 25.03.2007, 14:02 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
QUOTE | в котором есть стандартные вещи типа opendialog, считало initial directory как раз ту "текущую директорию", |
А если в OpenDialog в Initial Dir в этом приложении на Delphi
прописано какое-то значение ? Например директория запуска программы ?
Можно еще попробовать ChDir() но эффект наверное будет тем же.
И какое InitialDir получается во втором приложении ?
Может директория запуска приложения ? Тогда помещать
нужные файлы для второго приложения в директорию с ним.
|
|
slavic |
Отправлено: 25.03.2007, 15:39 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 6
|
Второе приложение я не могу изменить (исходников нет), соответственно и не могу прописать там что-то вроде:
OpenDialog->InitDirectory = "что нужно мне"
Единственное что я могу — дописывать что-нить в первое приложение,
то есть отсюда и пути решения:
1. либо OpenDialog->InitDirectory по умолчанию хранится где-то в реестре, тогда первое приложение запишит туда "что мне нужно".
2. либо это как то сделать с помощь api-функций. но это тоже для меня темный лес.
|
|
Admin |
Отправлено: 25.03.2007, 15:58 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
QUOTE | Второе приложение я не могу изменить (исходников нет), соответственно и не могу прописать там что-то вроде:
OpenDialog->InitDirectory = "что нужно мне" |
Так вот я про то что там в Initial Directory уже может быть что-то
прописано, тогда все попытки будут бесполезны.
Какая папка открывается сейчас при запуске вторго приложения ?
Всегда одна и та-же или разные ?
|
|
slavic |
Отправлено: 25.03.2007, 18:07 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 6
|
разные.
если открывать что то несколько раз, открывается на том месте где остановился предыдущий диалог. |
|
Admin |
Отправлено: 26.03.2007, 10:07 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Если несколько раз — это понятно, а где открывается при запуске
второй проги каждый ПЕРВЫЙ раз ?
|
|