Есть ли способ заставить FileDialog открыть папку на удаленном компьютере с помощью.Свойство InitialFileName

#vba #filedialog

#vba #файловый каталог

Вопрос:

Я тестирую пользовательское приложение, к которому они будут обращаться удаленно. Существует функция диалогового окна с файлами, которую я включил с помощью объекта FileDialog. Я бы хотел, чтобы они изначально открывали свои собственные локальные файлы, используя свойство.InitialFileName, но у меня возникли проблемы с поиском правильного пути для первоначального открытия. Вот что у меня есть на данный момент:

 Dim fileDialog As Object 'Office.FileDialog
  Set fileDialog = Application.fileDialog(msoFileDialogFilePicker)
  With fileDialog
    .InitialFileName = "C on " amp; Environ("CLIENTNAME")
    ....
 

Когда я открываю диалоговое окно без указания начального пути к файлу, есть место, к которому пользователь может получить доступ, это «»C на PCName», поэтому я подумал, что я мог бы просто установить одинаковую строку (в приведенном выше коде), но это не сработает, если я установлюэто как путь. Environ(«ИМЯКЛИЕНТА») получает имя компьютера пользователя, поэтому я думаю, что я близок к решению.

Спасибо за любые предложения.

Ответ №1:

Здесь есть список потенциально полезных переменных среды

Это может быть отправной точкой

 Option Explicit

Sub x()


Dim fileDialog As Object 'Office.FileDialog
  Set fileDialog = Application.fileDialog(msoFileDialogFilePicker)
  With fileDialog
    .InitialFileName = Environ("HOMEPATH")
        .Show
    End With
End Sub

 

Комментарии:

1. Спасибо за ответ. Я думаю, что Environ(«ДОМАШНИЙ ПУТЬ») просто получает локальный путь пользователя на сервере, к которому они подключаются удаленно. Мне нужен локальный путь удаленного пользователя, тот, который находится на компьютере, который они используют для подключения к удаленному серверу. Я нашел решение — используйте » tsclient c», чтобы открыть локальный C удаленного пользователя в диалоговом окне file.

2. Я думаю, вы могли бы повысить вероятность получения ответа и, возможно, получить менее жестко запрограммированное решение, изменив теги: я бы сформулировал вопрос примерно так: «как мне получить переменную домашней среды пользователя для RDP [или любого другого приложения, которое вы используете]» — ваш вопрос не о filedialog или vba егоо среде удаленного клиента — просто мысль — удачи

Ответ №2:

Неважно. Я верю, что нашел решение:

Файловый каталог.InitialFileName = «tsclient c»