Найти - Пользователи
Полная версия: создание Windows Service и его работа
Начало » Python для новичков » создание Windows Service и его работа
1 2 3 4 5
Doktopat
суть то в том ,что у меня файлы на рабочем столе ,допустим.
А я нажимаю на комбинацию кнопок и выделенные файлы уходят на флешку.
Мне нужно поймать событие нажатия клавиш……
sanodin
да я понял…
Doktopat
Да я понял…..
Хотя хоть убей не пойму почему
Нужен другой способ решения задачи
sanodin
можно скрипт запихнуть в автозагрузку, со скрытым ком.окном, расширение .pyw и пусть висит, ловит хуки и копи-пасте файлы, без сервиса
Doktopat
Если честно ,то я не понял ,что ты тут сказал
С другой стороны очень хотелось бы сделать именно сервис ибо красиво и вроде как правильно так.
Нужен совет от БОГОВ ПИТОНА
Lexander
Я хоть и не бог, но посмотрите в сторону приложения в трей-области.
Это так же красиво, особенно если создавать взрослый рабочий инструмент, а не писькомерку.
А инструмент он такой - он должен подчиняться пользователю, легко устанавливаться, запускаться и закрываться. Чего не скажешь про сервис.
Элегантная трей-утилита - наше все.
Doktopat
Я был бы рад узнать побольше о том как такую аппликацию создать и особенно как сделать так что бы она УСТАНАВЛИВАЛАСЬ итд…
sanodin
как пример, моргает светодиодом Caps Lock, в трее запуск, останова
примеры взяты из http://python.su/forum/topic/21735/
http://www.sql.ru/forum/987529/python-qt-otobrazhenie-kontekstnogo-podmenu

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import time
import win32api
import win32con
from PyQt4 import QtGui, QtCore
 
def led():
    
    print "Caps Locking...", time.asctime()
    win32api.keybd_event(win32con.VK_CAPITAL, 0, 0, 0)
    win32api.keybd_event(win32con.VK_CAPITAL, 0, win32con.KEYEVENTF_KEYUP, 0)
    
	
class WorkerThread(QtCore.QThread):
    def __init__(self, tray_icon):
        QtCore.QThread.__init__(self)
        self.tray_icon = tray_icon
        self._need_to_stop = False
 
    def run(self):
        self._need_to_stop = False
        self.tray_icon.showMessage('Test', 'Test message ')
        while not self._need_to_stop:
            print 'Doing work'
            
            led()
            
            time.sleep(1)
        print 'exiting'
        
        #QtGui.QApplication.quit()
 
    def stop(self):
        self._need_to_stop = True
    def st(self):
        QtGui.QApplication.quit()
def create_note(*args, **kw):
    worker.start()
def stoped(*args, **kw):
    worker.stop()
    
   
app = QtGui.QApplication(sys.argv)
tray = QtGui.QSystemTrayIcon(
    QtGui.QIcon(":/trolltech/styles/commonstyle/images/standardbutton-open-128.png")
)
worker = WorkerThread(tray)
menu = QtGui.QMenu()
menu.addAction("Caps Lock", create_note)
menu.addAction("Stop", stoped)
quit_action = menu.addAction('Quit')
quit_action.triggered.connect(worker.st)
tray.setContextMenu(menu)
tray.show()
app.exec_()
а что бы устанавливалась на компьютере с windows но без установленного python, надо собрать проект в exe
например с помощью cx_Freze
и затем либо в sfx архив упаковать либо есть утилиты-инсталяторы
если же не надо сборка в exe, берете скрипт, переименовываете расширение в .pyw (script.pyw), и помещаете в автозагрузку и при запуске windows сама запустит ваш скрипт, с учетом того, что на машине установлен python
ну или сами запускаете двойным кликом по скрипту
Doktopat
Не пойму как с помощью pywinauto узнать какие файлы выделены…
Все остальное уже скомпоновал
если кто может дать пример ,буду очень рад.
Мне нужно выделить файлы (мышкой допустим) на рабочем столе и получить имена этих файлов ,потому что потом их я переношу в другое место
sanodin
win api смотреть
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