Найти - Пользователи
Полная версия: создание Windows Service и его работа
Начало » Python для новичков » создание Windows Service и его работа
1 2 3 4 5
sanodin
пример, если выделенные файлы скопированы в буфер обмена, выдает имена и полный путь к файлам
в 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()
Doktopat
Замечательно! Спасибо!
Теперь вопрос как же заставить винду скопировать выделенные файлы(запихнуть их в клипборд)
Или же как симулировать нажатие ctrl + ‘c’ причем именно на это окно…
doza_and
:) немного не о том. Проблема помоему в инструменте который вы используете. А именно explorer - штука сугубо не предназначенная для легкого расширения функциональности. В любом нормальном файловом менеджере ваша задача решается написанием одной строчки. (far,totale,nautilus,mc). В крайнем случае плагином. Поэтому если что и автоматизировать то уж точно не работу с windows explorer.

Doktopat
совершенно не понял ,что вы мне тут написали
sanodin
все правильно, с проводником windows, крайне нежелательно работать, сам натыкался на камни, и в разных сборках windows, по разному
doza_and
Doktopat
совершенно не понял
ну пример.
far:
жмете <ctrl .> - пошла запись макроса
<tab> - переходите в противоположную панель выбираете нужное место ну например <cd F:\>
<tab> вертаетесь назад жмете <F5> - копируете выделенное
опять жмете <ctrl .> выбираете сочетание клавиш.

Теперь по сочетанию клавиш вы можете копировать выделенные файлы в целевую директорию. Затратили на программирование 12 нажатий на кнопки. По времени секунд 5.

Все - ваша задача решена. Никаких скриптов на питоне вообще не нужно. Любой нормальный менеджер файлов умеет такие вещи от рождения.
.
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()
Что же там не так…..
Форматирование конечно обожгло
sanodin
код в тэги оборачивайте

в прошлый раз я давал код на pywinauto, на 32 битной семерке у меня работает, находит окно с выделенным файлом и открывает текстовым редактором
Doktopat
Я признаю ,что я полный дятел, поэтому буду рад если ты покажешь что значит в тэги оборачивать код.
А самое главное это выложи еще раз код,а то я над всем этим весь день просидел…..
sanodin
В сообщении, слева от смайлов менюшка выпадающая, выбираете python, появятся тэги, между ними код вставляете
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB