Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 19, 2014 19:37:48

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

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

вот собрал все до кучи, не стал ничего делать с оптимизацией и просто оставил все как есть(быдлокодерство), два модуля и сама прожка, она работает, но с прожкой в трее все было бы намного меньше (в плане кода) и лучше, но я сам пока не могу работать с PyQt4
и еще, можно было бы просто , без нажатия клавиш, сделать, выделил файлы, вставил флешку и все…файлы ушли сами на флешку

клавиши win+F3

Отредактировано sanodin (Янв. 19, 2014 19:41:31)

Прикреплённый файлы:
attachment copy_to_flash.zip (3,5 KБ)

Офлайн

#2 Янв. 19, 2014 21:00:11

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

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

Огромное тебе спасибо за помощь.
Прошу заметить ,что без нажатия клавиш не интересно. Ведь я сам для себя придумал это занятие и по большей части именно для того ,что бы научиться всяким интересным вещам.
Постараюсь на днях посидеть и въехать во все ,что ты прислал.
ты написал ,что можно без нажатия - выделил файлы и они улетели на флешку!!! Но пардон получается ,что не выделишь в винде оно будет на флешку лететь…. Мне так не надо
Я просто хочу освоить эти техники:
выделение файлов,
работа с окнами,
с флешкой итд…
В будущем я смогу попривязывать кучу таких сочетаний клавиш и каждая будет ,что нибудь прикольное выполнять(полезное в той или иной степени для работы) и может когда нибудь я смогу таки проползти в автоматизацию в нашей фирме…..

на счет клавиш: клавиши win+F3
это в коде прописано,что при нажатии win+F3 ,что то делать?
хотелось бы найти как можно любое желанное мною сочетание клавиш привязывать к определенным событиям(к исполнению определенной логики)

Офлайн

#3 Янв. 19, 2014 21:06:57

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

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

Doktopat
получается ,что не выделишь в винде оно будет на флешку лететь…. Мне так не надо
в цикле проверяется наличие флешки, и как только обнаруживается, выделенные файлы копи-пасте на флешку, но вот если допустим, флешку вставишь, файлы скопировались, то потом уже, что бы повторить, только по клавишам придется, либо флешку передергивать
Doktopat
это в коде прописано,что при нажатии win+F3 ,что то делать
при нажатии этих клавиш, в этой программе, выделенные файлы, отправляются на флеш

и еще, можешь обратиться к находящимся здесь программистам, в плане помощи по созданию программы сидящей в трее, с логикой как в примере что я показывал на PyQt4, то есть в меню включается запуск ожидания нажатия клавиш, и при нажатии отрабатывается код из двух модулей в архиве(обнаружение буквы флешки и определение выделенных файлов в проводнике) ну и копирование

Отредактировано sanodin (Янв. 19, 2014 21:47:11)

Офлайн

#4 Янв. 20, 2014 07:46:37

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

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

Thank you very much!!!

Офлайн

#5 Янв. 20, 2014 08:45:54

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

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

Doktopat
Thank you very much!!!
Скорее гуглу, так как я не программист

Отредактировано sanodin (Янв. 20, 2014 08:54:56)

Офлайн

#6 Янв. 20, 2014 09:53:54

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

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

Net ne gygly, a tebe.
Ti ved' ydelil mne stol'ko vremeni,a ne google

Офлайн

#7 Янв. 25, 2014 12:35:36

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

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

Я скачал твои файлы.
хотел сперва проверить без переноса на флэшку:
#driv = flash.drive()
#print driv
#for i in files:
# copyFile(i, driv)

закоментил эти 4 строки и запускаю:
Пишет так:
Registering id 1 for key 114
Registering id 2 for key 115

Вроде все хорошо! Затем захожу в одну из папок на компе и выделяю пару файлов. Жму ВИН+Ф3 и вот что получаю:
Traceback (most recent call last):
File “CUsers/Doktopat/PycharmProjects/copy_paste/copy_to_flash.py”, line 78, in <module>
action_to_take ()
File “CUsers/Doktopat/PycharmProjects/copy_paste/copy_to_flash.py”, line 38, in handle_win_f3
files = hnd.hndlt()
File “C:\Users\Doktopat\PycharmProjects\copy_paste\hnd.py”, line 15, in hndlt
if GetClassName ( shellwindow . HWND ) == ‘CabinetWClass’ :
TypeError: The object is not a PyHANDLE object

что то тут не так. Да и я не совсем понимаю зачем мы это :
GetClassName ( shellwindow . HWND ) сравниваем с ‘CabinetWClass’
если мы вроде для этого top переменную определяли ,которая должна была главное окно отслеживать, а сейчас эта переменная ничего не делает….

В общем не хочет работать код

Офлайн

#8 Янв. 25, 2014 13:27:38

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

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

Я вернул в работу top:

def hndlt():
    ShellWindowsCLSID = '{9BA05972-F6A8-11CF-A442-00A0C90A8F39}'
    ShellWindows = Dispatch(ShellWindowsCLSID)
    top = win32gui.GetForegroundWindow()
    print type(top)
    print "Top is = " + str(top)
    for shellwindow in ShellWindows:
        shellwindow_to_int = int(shellwindow.HWND)
        print shellwindow_to_int
        #print GetClassName ( shellwindow . HWND )
        if shellwindow_to_int == top:
            print "DADADADADADADADA!!!!!!!!!"
            #print shellwindow . LocationName
            #print shellwindow . LocationURL
            #print 50 * '-'
            for j in range(shellwindow.Document.SelectedItems().Count):
                lis.append(shellwindow.Document.SelectedItems().Item(j).Path)
    try:
        return lis
    except:
        pass

и все бы ничего да вот если оставить только десктоп, то выяснится ,что десктоп не является шелвиндоу
и результат будет таким:
Registering id 1 for key 114
Registering id 2 for key 115
<type ‘int’>
Top is = 394198


то есть через win32gui его видно а через ShellWindows нет!!!
что же делать!
это последняя загвоздка в пути!
а ведь я еще попой чуял ,что десктоп не будет виден

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version