Problème python lancer un .exe dans son service windows python
Bonjour tout le monde,
Je me suis fait un service python qui ecoute un port quand une reponse est repéré il lance un .exe avec une question oui ou non ...
Mon probleme est que je vois bien mon exe se lancer dans le gestionnaire des tache mais je ne vois pas l'interface avec la pop up voici mon code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
'''
Author: Alex Baker
Date: 7th July 2008
Description : Simple python program to generate wrap as a service based on example on the web, see link below.
http://essiene.blogspot.com/2005/04/python-windows-services.html
Usage : python aservice.py install
Usage : python aservice.py start
Usage : python aservice.py stop
Usage : python aservice.py remove
C:\>python aservice.py --username <username> --password <PASSWORD> --startup auto install
'''
import win32service
import win32event
import win32evtlog
import win32evtlogutil
import win32serviceutil
import win32process
import ConfigParser
import time, os, sys
import json
import urllib
from Tkinter import *
class aservice(win32serviceutil.ServiceFramework):
_svc_name_ = "AlfrescoListener"
_svc_display_name_ = "AlfrescoListener"
_svc_description_ = "AlfrescoListener"
start_cmd = r"C:\Python26\dist\Alfrescolistener.exe"
def __init__(self, args):
win32serviceutil.ServiceFramework.__init__(self, args)
self.hWaitStop = win32event.CreateEvent(None, 0, 0, None)
def SvcStop(self):
self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
win32event.SetEvent(self.hWaitStop)
def SvcDoRun(self):
self.DoBatch()
def createProcess(self, cmd):
return win32process.CreateProcess(
None, cmd, None, None, 0, 0, None, None,
win32process.STARTUPINFO())
def DoBatch (self):
import socket
import servicemanager
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.bind((socket.gethostname(),5454))
serversocket.listen(5)
while 1 :
if serversocket.accept() :
info = self.createProcess(self.start_cmd)
def ctrlHandler(ctrlType):
return True
if __name__ == '__main__':
win32api.SetConsoleCtrlHandler(ctrlHandler, True)
win32serviceutil.HandleCommandLine(aservice) |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
import socket
import json
import urllib
from Tkinter import *
def reponse():
print json.dumps({"reponse" : "true", "ip" : socket.getaddrinfo(socket.gethostname(), None)[0][4][0]})
urllib.urlopen("http://www.google.fr")
fen1.destroy()
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#Creation de la fenetre
fen1 = Tk()
#Titre de la fenetre
fen1.title("Alfresco Notification Listener");
#Question pour notification
txt1 = Label(fen1, text ="Envoyer une notification ?")
#Creation des boutons
b1 = Button(fen1, text ='Oui', command=reponse)
b2 = Button(fen1, text ='Non',command=fen1.destroy)
#Mise en place du logo alfresco
can1 = Canvas(fen1, width =150, height =150, bg ="white")
#Disposition des differents elements
txt1.grid(row =1, sticky =E)
b1.grid(row =1, column =2,sticky =E, padx =10)
b2.grid(row =1, column =3,sticky =E, padx =5)
can1.grid(row =1, column =4, rowspan =3, padx =10, pady =5)
#Afficher la fenetre
fen1.mainloop() |