Как получить путь к папке в открытом проводнике на python?
Есть уже открытый проводник Windows с нужной директорией. Как получить путь этой директории в python?
Ответы (1 шт):
Автор решения: Amgarak
→ Ссылка
Задача показалась интересной, взял код отсюда и как сумел адаптировал его на питон.
import pygetwindow as gw
import win32gui
import comtypes.client
import os
# Функция для получения пути текущей папки в проводнике Windows
def get_explorer_window_path(MyHwnd):
try:
shell_app = comtypes.client.CreateObject("Shell.Application")
windows = shell_app.Windows()
for i in range(windows.Count):
explorer_window = windows.Item(i)
# Проверяем, соответствует ли текущее окно переданному дескриптору окна
if explorer_window is None:
continue
if explorer_window.hwnd == MyHwnd:
# Получаем путь к исполняемому файлу проводника
path = os.path.basename(explorer_window.FullName)
# Если это explorer.exe, то получаем путь текущей папки в проводнике
if path.lower() == "explorer.exe":
explore_path = explorer_window.Document.Folder.Items().Item().Path
return explore_path
finally:
shell_app = None
# Получаем список всех открытых окон
windows = gw.getAllWindows()
# Проходимся по каждому окну
for window in windows:
# Если класс окна - "CabinetWClass", это окно проводника
if win32gui.GetClassName(window._hWnd) == "CabinetWClass":
# Получаем дескриптор окна
hwnd = window._hWnd
# Получаем текущий путь к папке в проводнике
current_path = get_explorer_window_path(hwnd)
if current_path:
print("Текущий путь к папке в проводнике:", current_path)
else:
print("Не удалось получить текущий путь к папке в проводнике.")
У меня открыты 2 проводника, вывод в консоль:
Текущий путь к папке в проводнике: C:\Users\Amgarak\Desktop\Документы
Текущий путь к папке в проводнике: C:\Users\Amgarak\Desktop\Amgarak