Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 17, 2014 16:24:02

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

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

Еще раз возвращаюсь к своей проблеме, связанной с созданием сервиса.
Я пытаюсь решить задачу поэтапно , поэтому изменил слегка условие на данный момент:
Нужно создать сервис, который будет выполнять создания файла в определенной папке при нажатии некой комбинации клавиш на клавиатуре. Я выбрал Ctrl + ‘C’
я взял шаблон построения сервиса отсюда: http://iqa.com.ua/programming/python/windows-services-from-python-scripts (использую 2 пример)
В мэйн я вставляю саму логику скрипта:
def OnKeyboardEvent(event):
if event.Ascii == 3:
open(“C:\Users\Doktopat\Desktop\Desktop\\file.txt”, “w”)

hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()

while True:
pythoncom.PumpMessages()
servicemanager.LogInfoMsg(“I'm still here.”)

Хочу заметить ,что если просто запустить этот скриптик в PyCharm ,то он работает на ура и создает файл при нажатии клавиш.
я захожу в команд лайн и прописываю инстал сервиса -> пишет,что инсталлед. Затем иду в Сервисес-> нахожу свой сервис и делаю ему старт -> он вроде как стартует.
Но почему то ,при нажатии клавиш файл не создает……
файл .пу я прикрепил
Если можно ,поясните почему же он его не хочет создавать!!!!!

Прикреплённый файлы:
attachment main_file.py (3,0 KБ)

Офлайн

#2 Янв. 17, 2014 20:51:12

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

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

Сделай по первому рецепту

Офлайн

#3 Янв. 17, 2014 21:44:10

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

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

Очень долго пыхтел но все таки по первому рецепту тоже смог запустить сервис.
Эффект тот же! При нажатии на Ctrl + ‘Y’ это по Аски = 25 файл не создается. А если отдельно запустить вот это:
import pyHook
import pythoncom

def OnKeyboardEvent(event):
if event.Ascii==25:
open(“C:\Users\Doktopat\Desktop\Desktop\\file.txt”, “w”)

hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()

while True:
pythoncom.PumpMessages()

то файл создается
что же делать………

Офлайн

#4 Янв. 17, 2014 21:45:07

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

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

у меня Windows 7 64 bit Home Premium Service Pack 1 если что

Офлайн

#5 Янв. 17, 2014 22:24:23

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

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

Нужно выбирать глобальные сочетания клавиш, которые ничем не перекрываются.
Например, под Вин Ctrl+Y - это стандартный шорткат для повторения.
Плюс на Вин 7 ваш хук может не успеть сработать и система его аннулирует.
И еще у меня есть сомнения на счет применимости этого хука именно для сервиса.
Мне почему то память упорно намекает, что должно быть какое-то окно (десктоп - это тоже окно), но я очень давно не писал такого рода программы, поэтому рекомендую вам проверить подсказки моей дырявой памяти. ;)



Офлайн

#6 Янв. 17, 2014 22:42:15

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

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

я точно помню , что это работало под win xp , должно и под семерку
http://code.activestate.com/recipes/551780-win-services-helper/
сейчас семерка, тоже проверяю, не хочет работать

Отредактировано sanodin (Янв. 17, 2014 23:14:58)

Офлайн

#7 Янв. 18, 2014 00:10:55

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

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

та же программа ведь работает когда я просто из среды разработки запускаю этот скрипт
что же делать?

Офлайн

#8 Янв. 18, 2014 00:18:48

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

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

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

Офлайн

#9 Янв. 18, 2014 00:22:05

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

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

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

Офлайн

#10 Янв. 18, 2014 00:25:34

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

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

если убрать

            def OnKeyboardEvent(event):
                if event.Ascii == 3:
то просто файл создаст
то есть Hook не отлавливается

Отредактировано sanodin (Янв. 18, 2014 00:26:18)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version