Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 18, 2014 12:39:01

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

создание Windows Service и его работа

пример, если выделенные файлы скопированы в буфер обмена, выдает имена и полный путь к файлам
в 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)

Офлайн

#2 Янв. 18, 2014 13:59:40

Doktopat
Зарегистрирован: 2013-06-15
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

создание Windows Service и его работа

Замечательно! Спасибо!
Теперь вопрос как же заставить винду скопировать выделенные файлы(запихнуть их в клипборд)
Или же как симулировать нажатие ctrl + ‘c’ причем именно на это окно…

Офлайн

#3 Янв. 18, 2014 14:12:19

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

создание Windows Service и его работа

:) немного не о том. Проблема помоему в инструменте который вы используете. А именно explorer - штука сугубо не предназначенная для легкого расширения функциональности. В любом нормальном файловом менеджере ваша задача решается написанием одной строчки. (far,totale,nautilus,mc). В крайнем случае плагином. Поэтому если что и автоматизировать то уж точно не работу с windows explorer.



Отредактировано doza_and (Янв. 18, 2014 14:13:41)

Офлайн

#4 Янв. 18, 2014 14:16:05

Doktopat
Зарегистрирован: 2013-06-15
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

создание Windows Service и его работа

совершенно не понял ,что вы мне тут написали

Офлайн

#5 Янв. 18, 2014 14:32:45

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

создание Windows Service и его работа

все правильно, с проводником windows, крайне нежелательно работать, сам натыкался на камни, и в разных сборках windows, по разному

Офлайн

#6 Янв. 18, 2014 17:26:43

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

создание Windows Service и его работа

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

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

Все - ваша задача решена. Никаких скриптов на питоне вообще не нужно. Любой нормальный менеджер файлов умеет такие вещи от рождения.
.



Офлайн

#7 Янв. 18, 2014 19:57:25

Doktopat
Зарегистрирован: 2013-06-15
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

создание Windows Service и его работа

Основная задача не решить задачу копирования, а сделать это обязательно на питоне ибо его же хочу учить. И в общем есть следующее и никак не понять почему не работает.
Причем вроде в дебаге один раз сработало в пучарме, но теперь уже нигде и ничего…:

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)

Офлайн

#8 Янв. 18, 2014 20:03:13

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

создание Windows Service и его работа

код в тэги оборачивайте

в прошлый раз я давал код на pywinauto, на 32 битной семерке у меня работает, находит окно с выделенным файлом и открывает текстовым редактором

Офлайн

#9 Янв. 18, 2014 20:13:50

Doktopat
Зарегистрирован: 2013-06-15
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

создание Windows Service и его работа

Я признаю ,что я полный дятел, поэтому буду рад если ты покажешь что значит в тэги оборачивать код.
А самое главное это выложи еще раз код,а то я над всем этим весь день просидел…..

Офлайн

#10 Янв. 18, 2014 20:17:50

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

создание Windows Service и его работа

В сообщении, слева от смайлов менюшка выпадающая, выбираете python, появятся тэги, между ними код вставляете

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version