Форум сайта python.su
пример, если выделенные файлы скопированы в буфер обмена, выдает имена и полный путь к файлам
в PyQt4 можно тоже работать с буфером
наверное при выделении файлов, возможно добавление в буфер с помощью PyQt4
import win32clipboard win32clipboard.OpenClipboard() try: data = win32clipboard.GetClipboardData(win32clipboard.CF_HDROP) #print 'Files:' for i in data: print i except: print 'no file' win32clipboard.CloseClipboard()
Отредактировано sanodin (Янв. 18, 2014 14:09:17)
Офлайн
Замечательно! Спасибо!
Теперь вопрос как же заставить винду скопировать выделенные файлы(запихнуть их в клипборд)
Или же как симулировать нажатие ctrl + ‘c’ причем именно на это окно…
Офлайн
:) немного не о том. Проблема помоему в инструменте который вы используете. А именно explorer - штука сугубо не предназначенная для легкого расширения функциональности. В любом нормальном файловом менеджере ваша задача решается написанием одной строчки. (far,totale,nautilus,mc). В крайнем случае плагином. Поэтому если что и автоматизировать то уж точно не работу с windows explorer.
Отредактировано doza_and (Янв. 18, 2014 14:13:41)
Офлайн
совершенно не понял ,что вы мне тут написали
Офлайн
все правильно, с проводником windows, крайне нежелательно работать, сам натыкался на камни, и в разных сборках windows, по разному
Офлайн
Doktopatну пример.
совершенно не понял
Офлайн
Основная задача не решить задачу копирования, а сделать это обязательно на питоне ибо его же хочу учить. И в общем есть следующее и никак не понять почему не работает.
Причем вроде в дебаге один раз сработало в пучарме, но теперь уже нигде и ничего…:
import win32com.client import win32gui import pyHook import pythoncom import sys import win32com.client clsid = '{9BA05972-F6A8-11CF-A442-00A0C90A8F39}' ShellWindows = win32com.client.Dispatch(clsid) #Насколько понимаю то тут получаю набор открытых окон в винде print ShellWindows.Count #Проверяю что правда работает for i in range(ShellWindows.Count): print i def OnKeyboardEvent(event): if event.Ascii == 25: #Если нажимаем ctrl + 'Y' то начинаем праздник top = win32gui.GetForegroundWindow() #Получаем хэндл окна которое сейчас онТОП for i in range(int(ShellWindows.Count)): #Бежим по количеству открытых окон if int(ShellWindows[i].HWND) == top: #Если хэндл окна соответствует хэндлу нужного нам окна for j in range(ShellWindows[i].Document.SelectedItems().Count): #Бежим по количеству выбранных файлов в главном окне print ShellWindows[i].Document.SelectedItems().Item(j).Path #Печатаем путь к выделенному файлу elif event.Ascii == 17: #При нажатии ctrl + 'Q' завершаем работу sys.exit() hm = pyHook.HookManager() hm.KeyDown = OnKeyboardEvent hm.HookKeyboard() while True: pythoncom.PumpMessages()
Отредактировано Doktopat (Янв. 18, 2014 20:19:13)
Офлайн
код в тэги оборачивайте
в прошлый раз я давал код на pywinauto, на 32 битной семерке у меня работает, находит окно с выделенным файлом и открывает текстовым редактором
Офлайн
Я признаю ,что я полный дятел, поэтому буду рад если ты покажешь что значит в тэги оборачивать код.
А самое главное это выложи еще раз код,а то я над всем этим весь день просидел…..
Офлайн
В сообщении, слева от смайлов менюшка выпадающая, выбираете python, появятся тэги, между ними код вставляете
Офлайн