Форум сайта python.su
0
Добрый день всем!
Работаю QA-эйщиком. Есть определенная операция ,которая выполняется по 100 раз в день. Хотелось бы ее автоматизировать. Пытаюсь увлекаться питоном.
Боевая задача:
Работаю под windows 7 64 bit
нужно написать и скомпилировать скрипт ,который будет находится в винде как ДЕМОН процесс и мирно себе сидеть ,пока не будет нажата определенная комбинация клавиш ,например: контр+алт+“какаянибудьбуква” и тогда выделенные мною файлы будут вырезаться и вставляться на флешку в определенную папку. Вот собственно и вся задача.
В общем я понимаю следующее:
необходимо понять как создавать демон процесс
необходимо понять как отслеживать в винде событие : нажатие комбинации клавиш
получить от винды путь к выделенным файлам
а также необходимо понять как узнать у винды какую букву в пути она задала флешке и соответственно как к ней обратиться.
и наконец как сделать так что бы программа работала и на винде7 64 и на 32битах и на ЭКСПИ
Буду бесконечно рад помощи…Или хотя подтолкнуть меня к решению 
Офлайн
31
как создавать демон процесс
http://iqa.com.ua/programming/python/windows-services-from-python-scripts
комбинации клавиш
PyHook
узнать выделенный файл
pywinauto
я когда то делал подобное, открывал блокнотом выделенный файл в проводнике, вот пример, но за работоспособность не ручаюсь, так как под windows 7 server работала , а под win 7 немного переделывал, и прожка в помощь http://code.google.com/p/swapy/
# -*- coding: cp1251 -*- import pywinauto from pywinauto import win32functions,win32defines import win32api import win32con import time import win32clipboard import win32gui import win32com.client import subprocess ms=win32functions.SendMessage shell = win32com.client.Dispatch("WScript.Shell") pwa_app = pywinauto.application.Application() w=pywinauto.findwindows.find_windows(class_name='CabinetWClass')[0] window = pwa_app.window_(handle=w) window.SetFocus() win32gui.ShowWindow(w,5) win32gui.SetForegroundWindow(w) #win32gui.SetFocus(w) time.sleep(1) ms(w, shell.SendKeys("^c", 0), 0,0)#копирование #shell.SendKeys("^a^c", 0)#выделение,копирование time.sleep(1) print window.Texts()[0] win32clipboard.OpenClipboard() try: data = win32clipboard.GetClipboardData(win32clipboard.CF_HDROP) print 'Files:' for i in data: print i except: print 'No file to the clipboard' win32clipboard.CloseClipboard() try: PATH = data subprocess.Popen('notepad.exe "%s"'%(PATH)) except: PATH = " ".join(data).encode('cp1251') subprocess.Popen('notepad.exe "%s"'%(PATH))
Отредактировано sanodin (Янв. 13, 2014 19:53:47)
Офлайн
0
Огромное спасибо!
Уже изучаю винд сервисы))
Офлайн