Можно.
После красных строк из поста #2 идет необязательный параметр - папка по умолчанию. Для меня в нем есть один большой минус - нельзя выйти на уровень выше.
Допустим на диске D: есть папка TEMP
(setq ShlObj (vla-getInterfaceObject (vlax-get-acad-object) "Shell.Application")
Folder (vlax-invoke-method ShlObj
'BrowseForFolder
(vla-get-HWND (vlax-get-Acad-Object))
""
0
"D:\\TEMP"
)
)
(vlax-release-object ShlObj)
Если в этой папке есть файлы, то их можно показать
(setq ShlObj (vla-getInterfaceObject (vlax-get-acad-object) "Shell.Application")
Folder (vlax-invoke-method ShlObj
'BrowseForFolder
(vla-get-HWND (vlax-get-Acad-Object))
""
16384
"D:\\TEMP"
)
)
(vlax-release-object ShlObj)
почитай п. 3.18 описания BrowseForFolder
Синтаксис:
BrowseForFolder(<Hwnd>,<Заголовок>,<Опции>,<КорневаяПапка>)
Назначение: вызов модального окна "Выбор папки". Возвращает объект "Folder".
Параметры:
<Hwnd> - дескриптор родительского окна. Тип - целое число. 0 - текущее окно.
<Заголовок> - пояснение для пользователя в окне "Выбор папки". Тип - строка.
<Опции> - целое число (комбинация битовых флагов). Например, флаг 512 - запретить кнопку "Создать папку", 1 - не отображать Корзину, 16 - отображать EditBox для ввода полного пути с клавиатуры и т.п. Подробнее - см. MSDN.
<КорневаяПапка> - необязательный параметр. Корневая папка в окне "Выбор папки". Тип - строка. Пользователь не сможет пройти в окне "Выбор папки" выше этой папки. Если параметр не указан, корневой папкой будет рабочий стол Windows.