Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
2 / 2 / 1
Регистрация: 12.01.2024
Сообщений: 15

Windows 10 - получить путь из Быстрый доступ в проводнике

02.12.2024, 07:18. Показов 594. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всего доброго всем!
Хочу доработать Эту программку по созданию и размещению двух окон:
https://stackoverflow.com/ques... -the-posit
Идея в том, чтобы удобно задавать пути для открываемых окон не из программы. Сейчас я прописал пути во внешнем TXT файле, но все еще не то.. Хочу чтобы программа открывала два окна проводника с первыми двумя путями из Быстрого доступа в проводнике. Для этого нужно научиться эти пути читать. Гугл сказал, что эта информация хранится в файле "!f01b4d95cf55d32a.automaticDestinat ions-ms", но она там в нечитаемом виде, не хочу заморачиваться с шифрованием. Буду рад совету какими правдами и неправдами можно получить путь из быстрого доступа.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.12.2024, 07:18
Ответы с готовыми решениями:

Windows не может получить доступ к. Ошибка 0х80070035 не найден сетевой путь
Добрый день. Вопрос такого рода - после обновления Windows 10 Home пропала локальная сеть между компьютерами. Имена в сети видно, папки...

Получить путь к файлу выделенному в проводнике
Всем привет. Хотелось бы узнать как получить путь/пути к выделенному/выделенным файлам в проводнике Windows. Если у кого то есть, то и...

Получить путь к открытой в проводнике папке
Подскажите, как получить путь к открытой папке в проводнике? К примеру я открыл папку, нажал комбинацию клавиш и нужно, чтобы...

7
Администратор
Эксперт .NET
 Аватар для OwenGlendower
17898 / 13994 / 5345
Регистрация: 17.03.2014
Сообщений: 28,652
Записей в блоге: 1
02.12.2024, 14:25
Лучший ответ Сообщение было отмечено AnotherPerson как решение

Решение

AnotherPerson, получилось соорудить такой код для перебора всех элементов в Быстром доступе. Одна проблема - порядок элементов не совпадает с Проводником. Как решить не знаю. Может кто-то другой подскажет
VB.NET Скопировано
1
2
3
4
5
6
7
Dim shellAppType As Type = Type.GetTypeFromProgID("Shell.Application")
Dim shell As Object = Activator.CreateInstance(shellAppType)
Dim f2 As Object = shellAppType.InvokeMember("NameSpace", System.Reflection.BindingFlags.InvokeMethod, Nothing, shell, New Object() {"shell:::{679f85cb-0220-4080-b29b-5540cc05aab6}"})
Console.WriteLine("item count: " & f2.Items().Count)
For Each folderItem As Object In f2.Items()
    Console.WriteLine(folderItem.Path)
Next
2
2 / 2 / 1
Регистрация: 12.01.2024
Сообщений: 15
03.12.2024, 08:27  [ТС]
Сколхозил такой код:
VB.NET Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
          Dim objProcess As New System.Diagnostics.Process()
          objProcess.StartInfo.Verb = "runas" ' runas = run as administrator
          objProcess.StartInfo.FileName = "powershell.exe"
          objProcess.StartInfo.Arguments = Path.Combine(My.Application.Info.DirectoryPath, "QuickAccess_Powershell_script.ps1")
          objProcess.StartInfo.RedirectStandardOutput = True
          objProcess.StartInfo.RedirectStandardError = True
          objProcess.StartInfo.UseShellExecute = False
          objProcess.StartInfo.CreateNoWindow = True
          objProcess.StartInfo.StandardOutputEncoding = Encoding.GetEncoding("CP866") ' Если русские символы читает крякозяброй
          objProcess.Start()
 
          TextBox1.Text = objProcess.StandardOutput.ReadToEnd()
          ListBox1.Items.AddRange(TextBox1.Lines)
Script нагуглил:
Code Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
$shell = New-Object -ComObject Shell.Application 
$paths = $shell.Namespace("shell:::{679f85cb-0220-4080-b29b-5540cc05aab6}").Items() | ForEach-Object { $_.Path }
 
# view on screen
$paths
 
# write to text file
#$paths | Set-Content -Path 'D:\MyQuickAccessPaths.txt'
 
# don't forget to remove the used COM object from memory when done
$null = [System.Runtime.Interopservices.Marshal]::ReleaseComObject($shell)
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()
В целом все работает, и порядок путей сохраняется.
Бесит только мерцающее окно PowerShell. Может кто знает как победить?
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4323 / 3397 / 507
Регистрация: 27.01.2014
Сообщений: 6,197
03.12.2024, 09:06
AnotherPerson, Скрипт ведь делает абсолютно то же самое, что и код от OwenGlendower, а почему тогда порядок элементов в списке не совпадает?
0
2 / 2 / 1
Регистрация: 12.01.2024
Сообщений: 15
03.12.2024, 10:08  [ТС]
OwenGlendower, проверил ваш код и он работает отлично, и не требуется выполнять скрипт из файла, порядок путей сохранен. Шикарно) Спасибо!
Но окошко PowerShell все же мерцает....
0
62 / 59 / 4
Регистрация: 11.04.2021
Сообщений: 271
Записей в блоге: 5
04.12.2024, 19:37
https://stackoverflow.com/ques... windows-10

что то похожее по моему
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
17898 / 13994 / 5345
Регистрация: 17.03.2014
Сообщений: 28,652
Записей в блоге: 1
04.12.2024, 20:54
edmonsur, в топку такие решения. Нет никакой нужды запускать внешний процесс для выполнения задачи которую можно сделать в коде.
0
62 / 59 / 4
Регистрация: 11.04.2021
Сообщений: 271
Записей в блоге: 5
04.12.2024, 22:17
OwenGlendower, видел... даже класс находил. ну.. на нет и суда нет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.12.2024, 22:17
Помогаю со студенческими работами здесь

Получить полный путь папки выделенной в проводнике
Здравствуйте. Возникла такая проблема. Необходимо при клике мышкой по папке (или какому либо другому объекту), на рабочем столе или в...

Как получить полный путь файлов выделенных в проводнике и передать их в программу
Здравствуйте уважаемые! Прошу прощения за корявую тему. Пояснение ниже. Есть небольшая программка , которая производит сравнение двух...

Как при открытии программы получить путь файла, выбранного в проводнике?
Доброго времени суток, есть задача. Я делаю плеер для *.mp3 файлов, хочу, чтобы при нажатии на файл в проводнике, открывалось мое...

Возможен ли быстрый доступ к службам в Windows 7?
Добрый день. Подскажите пожалуйста кто знает: возможен ли быстрый доступ к службам в Windows 7?? - Конкретно интересует: есть ли команда в...

Как получить полный доступ к диску Windows 7 в домашней WiFi-сети через Windows Vista?
Добрый день. Скажите пожалуйста как сделать чтобы в домашней WiFi сети, с компьютера под управлением Windows Vista можно было полнотью...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Результаты исследования от команды MCM (март 2025 г.)
Programma_Boinc 07.04.2025
Результаты исследования от команды MCM (март 2025 г. ) В рамках наших текущих исследований мы продолжаем изучать гены, которые имеют наибольшую вероятность развития рака легких, выявленные в рамках. . .
Рекурсивные типы в Python
py-thonny 07.04.2025
Рекурсивные типы - это типы данных, которые определяются через самих себя или в сочетании с другими типами, которые в свою очередь ссылаются на исходный тип. В мире программирования такие структуры. . .
C++26: Объединение и конкатенация последовательностей и диапазонов в std::ranges
NullReferenced 07.04.2025
Работа с последовательностями данных – одна из фундаментальных задач, с которой сталкивается каждый разработчик. C++ прошел длинный путь в эволюции средств для манипуляции коллекциями – от. . .
Обмен данными в микросервисной архитектуре
ArchitectMsa 06.04.2025
Когда разработчики начинают погружаться в мир микросервисов, они часто сталкиваются с парадоксальным правилом: "два сервиса не должны делить один источник данных". Эта мантра звучит повсюду в. . .
PostgreSQL в Kubernetes: Автоматизация обслуживания с CNPG
Mr. Docker 06.04.2025
Администраторы баз данных сталкиваются с целым рядом проблем при обслуживании PostgreSQL в Kubernetes: как обеспечить правильную репликацию данных, как настроить автоматическое переключение при. . .
Async/await в TypeScript
run.dev 06.04.2025
Асинхронное программирование — это подход к разработке программного обеспечения, при котором операции выполняются независимо друг от друга. В отличие от синхронного выполнения, где каждая последующая. . .
Многопоточность в C#: Синхронизация потоков
UnmanagedCoder 06.04.2025
Многопоточное программирование стало неотъемлемой частью разработки современных приложений на C#. С появлением многоядерных процессоров возможность выполнять несколько задач параллельно значительно. . .
TypeScript: Классы и конструкторы
run.dev 06.04.2025
TypeScript, как статически типизированный язык, построенный на основе JavaScript, привнес в веб-разработку новый уровень надежности и структурированности кода. Одним из важнейших элементов этой. . .
Многопоточное программирование: Rust против C++
golander 06.04.2025
C++ существует уже несколько десятилетий и его поддержка параллелизма постепенно наращивалась со временем. Начиная с C++11, язык получил стандартную библиотеку для работы с потоками, а в последующих. . .
std::vector в C++: от основ к оптимизации производительности
NullReferenced 05.04.2025
Для многих программистов знакомство с std::vector происходит на ранних этапах изучения языка, но между базовым пониманием и подлинным мастерством лежит огромная дистанция. Контейнер std::vector. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер