Форум программистов, компьютерный форум, киберфорум
Наши страницы

Visual Basic .NET

Войти
Регистрация
Восстановить пароль
 
 
eenk
0 / 0 / 0
Регистрация: 14.05.2016
Сообщений: 26
#1

Проводник средствами контрола WebBrowser - Visual Basic .NET

16.05.2016, 12:52. Просмотров 975. Ответов 31
Метки нет (Все метки)

Если в VB6 были контролы FileListBox, DirListBox, DriveList, с помощью которых можно было бродить по содержимому дискового пространства компьютера, то в vb.net их net.
В качестве альтернативы MSDN предлагает программное заполнение Listbox и ListView содержимым файловой системы компьютера. Однако, на деле это очень громоздко, медленно и хлопотно. И результат получается некрасивый.
С помощью WebBrowser тоже можно ходить по дискам, если добавить, до кучи, пару кнопок для "обслуживания": Назад и Вперед
Стартовать контрол может с любой удобной папки, например "Мои документы"
vb.net
1
2
CurrPath=My.Computer.FileSystem.SpecialDirectories.MyDocuments
WebBrowser1.Navigate(CurrPath)
для удобства можно добавить кнопку Вверх, с примерно таким кодом:
vb.net
1
2
3
4
5
6
7
Dim Nm As Integer=-1
        Dim Pth As String=WebBrowser1.Url.ToString().Remove(0,8).Replace("/","[I]обратный слэш[/I]") 'первые 8 символов, это "///file:", замена слэшей для других целей (использую, вкупе старый FileListBox)
        If Pth.EndsWith("обратный слэш")=True Then Exit Sub
        Nm=Pth.LastIndexOf("обратный слэш"): If Nm<0 Then Exit sub
        Pth=Pth.Remove(Nm)
        If Pth.Contains("обратный слэш")=false Then Pth=Pth &"" 'это на случай, если окажемся в корне диска, типа C:\ и предыдущая команда отрубит слэш
        Explorer.Navigate(Pth)
в конструкции My.Computer.FileSystem.SpecialDirectories имеется ряд других папок, с которых можно начать навигацию. Но нет такой, по которой WebBrowser показал бы такой набор:
Проводник средствами контрола WebBrowser
с этой картинки было бы наиболее удобно начинать.
Я знаю, есть какое-то магическое слово, чтобы WebBrowser открыл это, но не могу найти. Часа четыре убил.
---
обратный слэш - сайт, почему-то, удаляет этот символ '\, когда он в кавычках
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2016, 12:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проводник средствами контрола WebBrowser (Visual Basic .NET):

Внедрение в Проводник - Visual Basic .NET
Делаем антивирус, устали уже):wall: надо вот что сделать: Если пользователь в проводнике и не только (к примеру рабочий стол), кликает...

Перетаскивание файла с формы в проводник Windows - Visual Basic .NET
Помогите! Нигде не могу найти. Как копировать файл перетаскиванием его имени со списка на форме в проводник или рабочий стол. Есть...

Открыть проводник по пути, введенному в поле диалогового окна - Visual Basic .NET
Всемм доброй ночи. Пишу я это в 1.13 и вот я почти закончил программу но есть нюансы! Допустим на форме две кнопки допустим Button1 и...

Добавление контрола в тулбокс - Visual Basic .NET
День добрый, при создании своего контрола в &quot;добавить пользовательский элемент управления&quot; (студия 2012 года), не могу добавить его в...

Добавление своего контрола - Visual Basic .NET
Если я наследую от какого-либо контрола, то смогу ли размещать его как и стандартные контролы на форме, а не только кодом?

Есть ли в Webbrowser проводник DOM как в IExplore? - Delphi
Всем привет есть ли в Webbrowser проводник DOM как в iexplore и как можно от туда вытащить html код

31
Shersh
Заблокирован
16.05.2016, 13:08 #2
Цитата Сообщение от eenk Посмотреть сообщение
обратный слэш - сайт, почему-то, удаляет этот символ '\, когда он в кавычках
Приходится использовать костыль, чтобы отобразить обратный слэш перед кавычками -
пишем два слэша "\\" чтобы увидеть один "\".
Этот баг почему то упорно игнорируется?
1
eenk
0 / 0 / 0
Регистрация: 14.05.2016
Сообщений: 26
16.05.2016, 14:36  [ТС] #3
ага! Учту в дальнейшем.

Добавлено через 1 час 4 минуты
я, в общем-то, хотел спросить, что надо написать вот тут: .Navigate(?????) чтобы перейти на список дисков.
может, еще, какие-нибудь интересные команды для webbrowser знаете?

Добавлено через 18 минут
и, еще:
кто-нибудь знает, как управлять WebBrowser'ом в режиме проводника?
менять вид (Список-Таблица-Мелкие значки-итд), показать системные/скрытые/архивные файлы и так далее?
0
Shersh
Заблокирован
16.05.2016, 14:51 #4
Если просто попрободить, то
vb.net
1
Process.Start("C:")
чем не выход?
0
eenk
0 / 0 / 0
Регистрация: 14.05.2016
Сообщений: 26
16.05.2016, 15:01  [ТС] #5
не, ну просто побродить можно и проводником, конечно
мне нужен в программе встроенный проводник, чтобы определить место, которое программа будет "обслуживать". Давно я себе написал такую программулину в VB6
File tracer.zip
ну, устарела она уже. и хочется добавить еще кое-каких функций для обработки файлов.
0
Shersh
Заблокирован
16.05.2016, 15:15 #6
https://msdn.microsoft.com/en-us/lib...v=vs.110).aspx
0
Orlangur1991
679 / 668 / 149
Регистрация: 28.11.2014
Сообщений: 1,110
16.05.2016, 15:58 #7
eenk, Почему не использовать FolderBrowserDialog? Если Вам просто нужно выбрать папку
vb.net
1
2
3
4
Dim SFD As New FolderBrowserDialog
        If SFD.ShowDialog = Windows.Forms.DialogResult.OK Then
            TextBox1.Text = SFD.SelectedPath
        End If
0
eenk
0 / 0 / 0
Регистрация: 14.05.2016
Сообщений: 26
16.05.2016, 16:14  [ТС] #8
Выбрать саму папку можно диалогом, конечно.
Но в процессе работы, в окне программы нужно будет отображать текущее состояние контролируемой папки.
примерно так:
Проводник средствами контрола WebBrowser
1 - WebBrowser
2 - старый контрол FileListBox
3 - кнопа, открывающая folderBrowserDialog
0
diadiavova
1843 / 979 / 271
Регистрация: 11.04.2015
Сообщений: 1,820
Записей в блоге: 31
16.05.2016, 19:53 #9
eenk, с помощью менеджера пакетов NuGet установи пакет Microsoft.WindowsAPICodePack-Shell. На панель элементов добавь контролы из этой библиотеки, там будет ExplorerBrowser. Это как раз то, что тебе нужно. Там тоже есть метод Navigate, который можно использовать примерно так
vb.net
1
 Me.ExplorerBrowser1.Navigate(ShellObject.FromParsingName("c:"))
Предварительно импортировав
vb.net
1
Imports Microsoft.WindowsAPICodePack.Shell
2
Zefirr
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 7
26.05.2016, 09:57 #10
Можно поподробней? Искал, и не нашёл данный контролл. А Webbrowser никак не хочет открывать папку(при дабл клике) внутри себя, запускает проводник.
0
eenk
0 / 0 / 0
Регистрация: 14.05.2016
Сообщений: 26
26.05.2016, 10:03  [ТС] #11
у меня открывает. может, в свойствах чего не так?
Проводник средствами контрола WebBrowser
0
eenk
0 / 0 / 0
Регистрация: 14.05.2016
Сообщений: 26
26.05.2016, 10:08  [ТС] #12
вот тут, кстати, есть бесплатный Explorer Tree Control.
0
Zefirr
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 7
26.05.2016, 10:11 #13
Свойства перерыл вдоль и поперёк, нет там ничего нужного. У меня тоже на одной машине открывает на другой нет. Свой проводник писать не очень хочется.
0
diadiavova
1843 / 979 / 271
Регистрация: 11.04.2015
Сообщений: 1,820
Записей в блоге: 31
26.05.2016, 10:11 #14
Цитата Сообщение от Zefirr Посмотреть сообщение
Можно поподробней?
  1. Открываешь обозреватель решений.
  2. Находишь проект, в котором будешь использовать контрол.
  3. Правый клик по проекту открывает контекстное меню, в нем надо найти Управление пакетами NuGet
  4. В строке поиска интерфейса управления пакетами вводишь Microsoft.WindowsAPICodePack-Shell
  5. Устанавливаешь пакет.
  6. Дальше переходишь на панель элементов, в контекстном меню которого находишь пункт Выбрать элементы.
  7. В открывшемся окне во вкладке Компоненты .Net Framework жмешь кнопку Обзор... и выбираешь библиотеку, добавленную с помощью менеджера пакетов, после чего элементы из этой библиотеки станут доступными на панели элементов.
1
eenk
0 / 0 / 0
Регистрация: 14.05.2016
Сообщений: 26
26.05.2016, 15:28  [ТС] #15
diadiavova, спасибо. установил, работает.
где бы разузнать про его свойства и методы?

вот полный путь места, где мы находимся.
Добавлено через 48 минут
vb.net
1
Explorer.NavigationLog.CurrentLocation.ParsingName
вот имя отображаемой папки или имя диска с буквой [System (C: ), например], если мы в корне.
vb.net
1
Explorer.NavigationLog.CurrentLocation.Name
как заставить контрол "шагнуть" назад или вперед? Типа того:
vb.net
1
Webbrowser1.GoBack
0
26.05.2016, 15:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2016, 15:28
Привет! Вот еще темы с ответами:

Как получить содержимое фрейма из контрола WebBrowser? - Visual Basic
Кстати, на Delphi таже самая история. Так что пока нет выхода? Может всё же &quot;View Source&quot; как нибудь использовать?

Реализация в консоли контрола WebBrowser и в новом потоке - C#
Создаю консольное приложение,добавляю контрол WebBrowser в новый поток но метод WebBrowser.Navigate(“site”) не срабатывает, экземпляр...

Как присвоить на прямую WebBrowser-у, html-body контрола? - Visual Basic
Есть контрол WinHTTP, Отправляется запрос на страницу WinHTTP.Open 'GET', 'http://www....', False WinHTTP.Send После возврата...

Получить ответ на GET запрос средствами Webbrowser? - Delphi
Как получить ответ на GET запрос средствами Webbrowser? На сайте есть кпопка с ява скриптом, которая формирует GET запрос, после...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.