Тема: Как узнать путь к последнему загруженному Приложению?

При ручной загрузке в AutoCAD файла Приложения после команды appload, AutoCAD запоминает директорию с этим файлом. Вопрос - куда записывается эта информация, и как ее прочитать программно?
Спасибо.

Re: Как узнать путь к последнему загруженному Приложению?

Что-то удалось нащупать.
Информация об использовании окна OpenSave записывается и сохраняется в ветке реестра:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU\*
Этот раздел содержит 12 параметров, в том числе:
- 10 обозначенных буквами и содержащих полные имена файлов
- 1 по имени MRUList, содержащий изменяющийся список буквенных параметров
Работает эта система таким образом - после каждого использования окна OpenSave изменяется порядок букв в списке MRUList и на первом месте оказывается та буква, в чьем параметре записано имя последнего (загруженного, открытого, сохраненного) файла.
Например,были последовательно загружены в рисунок файлы:
D:\Work\LISP\MOD2\Tag.fas;
D:\Work\LISP\MOD2\CutLDef1.fas;
Вот два состояния записи:
1)Parameter name - MRUList;  Parameter data-  ajhgbfcedi;   Parameter name - a; Parameter data- D:\Work\LISP\MOD2\Tag.fas;
2)Parameter name - MRUList;  Parameter data -  iajhgbfced;  Parameter name - i; Parameter data- D:\Work\LISP\MOD2\CutLDef1.fas;
Теперь вопрос заключается в следующем - где найти инструмент, извлекающий имя последнего загруженного файла? Ведь он, наверняка, существует, и не хотелось бы изобретать велосипед.

Re: Как узнать путь к последнему загруженному Приложению?

> LeonidSN
А что если приложение загружено не при помощи appload, а например при помощи функции (load ...)? :)

Re: Как узнать путь к последнему загруженному Приложению?

> Александр Ривилис
Если Приложение(файл) загружается программно, то реестр не реагирует на такую загрузку (точнее сказать - вышеназванный подраздел реестра.)
Но дело в том, что при программной загрузке полное имя загружаемого файла известно и незечем огород городить, вот цитата из Help:

Dim FileName As String
    FileName =[b] "c:\program files\autocad 2000i\sample\vba\drawline.dvb"[/b]
       ' Load a sample VBA project DVB file
    LoadDVB FileName

Моя же задача заключалась в том, чтобы получить путь к файлу при его ручной загрузке. В данном случае это было нужно для инсталлятора.
Полученное решение разместил в разделе "Готовые программы", думаю, тем кто пишет на VB, VBA может пригодиться.

Re: Как узнать путь к последнему загруженному Приложению?

> LeonidSN
1) Не совсем понял, зачем это может быть нужно.
2) Если после использования appload использовался какой-то другой Open/Save диалог (а может и не один), то последний загруженный файл найти будет крайне проблематично.

Re: Как узнать путь к последнему загруженному Приложению?

> Александр Ривилис
Если после использования appload использовался какой-то другой Open/Save диалог (а может и не один), то последний загруженный файл найти будет крайне проблематично.
Верно. Но у меня, как я уже говорил, эта идентификация - часть процесса инсталляции.

Re: Как узнать путь к последнему загруженному Приложению?

> LeonidSN
А может можно как-то попроще?

Re: Как узнать путь к последнему загруженному Приложению?

> Александр Ривилис
Может быть и можно, но как? Для того и выложил на форуме, чтобы люди добрые подсказали.

Re: Как узнать путь к последнему загруженному Приложению?

> LeonidSN
Я не про получение пути последнего загруженного lisp-файла, а про процесс инсталляции в целом. Если бы я понял зачем в процессе инсталяяции используется этот путь возможно смог бы предложить другое решение.

Re: Как узнать путь к последнему загруженному Приложению?

> Александр Ривилис
ОК, порядок таков:
- Пользователь копирует дистрибутив в одному ему известное место на диске;
- затем запускает Автокад и с помощью Tools\Load Applications отыскивает и загружает включенный в дистрибутив установочный  VBA-файл: Setup.dvb (таким образом решаются задачи прединсталляционной проверки - наличие AutoCAD, его версия и наличие поддержки VBA);
- макрос в составе установочного Setup.dvb-файла
запусает исполняемый файл инсталлятора MyProgramSetup.exe (скомпилированный в Inno Setup) и при этом использует информацию о местоположении дистрибутива, полученную при ручной загрузке файла  Setup.dvb.

Re: Как узнать путь к последнему загруженному Приложению?

> LeonidSN
А что Setup.dvb не в состоянии определить где он находится без использования информации из реестра?
Это разве не оно: Application.VBE.ActiveVBProject.FileName ?

Re: Как узнать путь к последнему загруженному Приложению?

> Александр Ривилис
Оно.
Спасибо!!!

Re: Как узнать путь к последнему загруженному Приложению?

Ну вот... Кстати, это решение неоднократно упоминается на этом форуме... wink

Re: Как узнать путь к последнему загруженному Приложению?

.> LeonidSN (2007-02-11 17:01:00)
Похоже, что рано радовался. Формула:Application.VBE.ActiveVBProject.FileName
работает неустойчиво, через раз ссылается на какой-то временный файл. Почему? - не знаю. В итоге, вернулся к более громоздкому но надежному способу:https://www.caduser.ru/forum/topic33285.html
И остаюсь при мнении, что такой вариант может еще кому-нибудь пригодиться