0 / 0 / 0
Регистрация: 27.07.2014
Сообщений: 50
1
VBS

Диалоговое окно для выбора папок с указанием папки

14.11.2016, 00:49. Показов 6076. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, как указать папку при открытии диалогового?
вариант (strFolderPath = Browse4Folder(strPrompt, intOptions, "c:\windows")) не подходит. нужно чтоб было видно всё дерево а не только папка (c:\windows)

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
' Declare Option Constants
Const BIF_returnonlyfsdirs   = &H0001
Const BIF_dontgobelowdomain  = &H0002
Const BIF_statustext         = &H0004
Const BIF_returnfsancestors  = &H0008
Const BIF_editbox            = &H0010
Const BIF_validate           = &H0020
Const BIF_browseforcomputer  = &H1000
Const BIF_browseforprinter   = &H2000
Const BIF_browseincludefiles = &H4000
 
Function Browse4Folder(strPrompt, intOptions, strRoot)
    Dim objFolder, objFolderItem, objShell
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.BrowseForFolder(0, strPrompt, intOptions, strRoot) 
    If (objFolder Is Nothing) Then
        Browse4Folder = ""
    Else
        Set objFolderItem = objFolder.Self
        Browse4Folder = objFolderItem.Path      
        Set objFolderItem = Nothing
        Set objFolder = Nothing
    End If  
    Set objShell = Nothing
End Function
 
strPrompt = "Please select the folder to process."
intOptions = BIF_RETURNONLYFSDIRS + BIF_EDITBOX + BIF_NONEWFOLDER
 
' Return the path, e.g. C:\
strFolderPath = Browse4Folder(strPrompt, intOptions, "")
msgbox strFolderPath
Миниатюры
Диалоговое окно для выбора папок с указанием папки   Диалоговое окно для выбора папок с указанием папки  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.11.2016, 00:49
Ответы с готовыми решениями:

Диалоговое окно для выбора папки
Необходимо диалоговое окно для выбора не файла, а папки Добавлено через 9 минут Нашёл:...

Нужно диалоговое окно для выбора папок и файлов одновременно
Добрый день! Подскажите плиз нужно диалоговое окно для выбора папок и файлов одновременно . Заранее...

Диалоговое окно выбора папки
Добрый вечер! Подскажите, пожалуйста, как открыть вот такое окно через cmd? Ищу способы именно...

Открыть диалоговое окно выбора папки
Подскажите как сделать диалоговое окно выбора папки с файлами что бы в текстбоксе был виден путь...

8
61 / 61 / 36
Регистрация: 16.09.2015
Сообщений: 296
14.11.2016, 10:11 2
чем strFolderPath = Browse4Folder(strPrompt, intOptions, "C:") Вас не устраивает?
0
0 / 0 / 0
Регистрация: 27.07.2014
Сообщений: 50
14.11.2016, 10:18  [ТС] 3
нужно всё дерево и другие диски
0
61 / 61 / 36
Регистрация: 16.09.2015
Сообщений: 296
14.11.2016, 10:22 4
так не указывайте ничего
Browse4Folder(strPrompt, intOptions, "") - отобразит все диски
0
0 / 0 / 0
Регистрация: 27.07.2014
Сообщений: 50
14.11.2016, 10:27  [ТС] 5
tisha_, вы не догоняете или издеваетесь?
0
Нарушитель
5776 / 1434 / 350
Регистрация: 07.05.2015
Сообщений: 2,822
14.11.2016, 12:26 6
929151, уважаемый, не нужно истерик, ибо тем самым Вы умаляете энтузиазм форумчан помочь. Ответ на Ваш вопрос можно вполне найти в MSDN. О четвертом параметре написано буквально следующее:
Цитата Сообщение от MSDN
The user cannot browse higher in the tree than this folder.
То есть, задавая данный параметр, дерево папок выше недоступно для пользователя. Иными словами:
Visual Basic
1
2
3
With CreateObject("Shell.Application")
   Dim dlgBrowse : Set dlgBrowse = .BrowseForFolder(0, "Некий текст", 0, "C:\Windows")
End With
Будет отображать дерево для Windows, но выше этой папки Вам уже прыгнуть не удастся.
2
0 / 0 / 0
Регистрация: 27.07.2014
Сообщений: 50
14.11.2016, 12:39  [ТС] 7
этот код VBA на VBS переделать никак нельзя?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub Folder()
Dim intResult As Integer
Dim strPath As String
 
'changes the folder dialogs title
Application.FileDialog(msoFileDialogFolderPicker _
    ).InitialFileName = "C:\windows"
'the dialog is displayed to the user
intResult = Application.FileDialog(msoFileDialogFolderPicker).Show
'checks if user has cancled the dialog
If intResult <> 0 Then
    'dispaly message box
Call MsgBox(Application.FileDialog(msoFileDialogFolderPicker _
    ).SelectedItems(1), _
    vbInformation, "Selected Folder")
End If
 
End Sub
Добавлено через 7 минут
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Option Explicit
Const msoFileDialogFolderPicker = 4
Const xlMinimized = -4140
 
Dim objExcel, result
 
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False
objExcel.WindowState = xlMinimized 
With objExcel.FileDialog(msoFileDialogFolderPicker)
   .InitialFileName = "C:\windows"
    If .Show = True Then
        result = .SelectedItems(1)
    End If
End With
 
objExcel.Quit
Set objExcel = Nothing
 
msgbox result
тема закрыта
0
Эксперт WindowsАвтор FAQ
18042 / 7645 / 891
Регистрация: 25.12.2011
Сообщений: 11,426
Записей в блоге: 17
20.11.2016, 15:44 8
Цитата Сообщение от 929151 Посмотреть сообщение
этот код VBA на VBS переделать никак нельзя?
Никак.
Цитата Сообщение от 929151 Посмотреть сообщение
Set objExcel = CreateObject("Excel.Application")
Это только при условии, что Ваш код будет запускаться на системах, где установлен MS Excel. На всех остальных он работать не будет.

Могу дать простую утилиту с исходником, которую достаточно скормить скрипту, чтобы она сделала то, чего вы хотите.
0
0 / 0 / 0
Регистрация: 27.07.2014
Сообщений: 50
20.11.2016, 17:42  [ТС] 9
Dragokas, буду очень признателен.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.11.2016, 17:42
Помогаю со студенческими работами здесь

Диалоговое окно выбора как папки так и файлов
Можно ли обыграть ситуацию с диалоговыми окнами: Application.FileDialog(msoFileDialogFilePicker) -...

Диалоговое окно для выбора изображения
Подскажите как создать диалоговое окно для выбора изображения формата .bpm в поле объекта OLE

Не выводится диалоговое окно, для выбора картинки с компьютера
При нажатии на кнопку &quot;button1/Обзор&quot; не выводится диалоговое окно, для выбора картинки с...

Как через диалоговое окно (CommonDialog) выбрать путь к папки для ее копирования?
необходимо: при нажатии на кнопку1 через диалоговое окно (CommonDialog) выбрать путь к...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru