C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
текущая директория
slavic
Отправлено: 25.03.2007, 11:48


Ученик-кочегар

Группа: Участник
Сообщений: 6



вопрос может быть и немного выходит за рамки раздела, но задам его здесь.

в с++ есть такое понятие как "текущая директория", ее можно получать и задавать функциями типа GetCurrentDir() и SetCurrentDir().

проблема возникла в следующем, есть 2 приложения, второе запускается сразу за первым. каким образом сделать так, чтобы 1ое (написаное на билдере, исходники его можно редактировать) в конце своей работы устанавливало "текущую директорию" , а 2ое (его пофиксить уже никак нельзя, оно вроде написано на делфях) — в котором есть стандартные вещи типа opendialog, считало initial directory как раз ту "текущую директорию", которую в конце своей работы установило 1ое приложение.

где копать? есть подозрения на реестр, но выжать из него ничего не смог..

еще раз повторю, если бы можно было менять исходники обоих приложений — вопрос решался бы очень просто , например, записью текущей директории в файл. в моем случае я второе приложение изменять не могу.


PS. как показали практические исследования функция SetCurrentDir()работает только для текущего приложения. на второе она никак не влияет sad.gif

Отредактировано 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-функций. но это тоже для меня темный лес. sad.gif
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



Если несколько раз — это понятно, а где открывается при запуске
второй проги каждый ПЕРВЫЙ раз ?

Вернуться в Вопросы программирования в C++Builder