Thread View: pl.comp.lang.python
2 messages
2 total messages
Started by ak3031884
Thu, 06 Aug 2009 16:07
program jako usługa c.d.
Author: ak3031884
Date: Thu, 06 Aug 2009 16:07
Date: Thu, 06 Aug 2009 16:07
160 lines
5621 bytes
5621 bytes
Witam napisałam programik (sprawdzający w regedit domyślnego klienta
poczty, pobiera HOME zalogowango użytkkownika i wyszukuje Plik
magazyju klienta poczty sprawdza wielkość i w zależności od
zajmowanego miejsca jeśli jest powyżej pewnej ustalonej normy
informuje użytkownika aby wyczyścił skrzynkę pocztową) zgodnie z tym
co podpowiedzieli koledzy wcześniej
na podstawie tego tutorila. http://islascruz.org/html/index.php?gadget=StaticPage&action=Page&id=6
Stworzyłem usługę i przy uruchomieniu jej w menadżerze usług pojawia
się okienko
"Usługa outlook na Komputer lokalny uruchomiła się, a następnie
zatrzymała. Niektóre usługi zatrzymują się automatycznie, jeśli są
bezczynne, na przykład usługa Dzienniki wydajności i alerty."
no i czemu bezczynna? jak jest ładowana klasa która raczej w funcji
main() powinna sie odpalić i wykonywać zadanie a tu nic dlaczego tak ?
nie pojmuje.
outlook_ost.py:
import os
from os.path import join, getsize
import pygtk
pygtk.require('2.0')
import gtk
import sys
import cairo
import pangocairo
import pango
import atk
from _winreg import *
import time
class OutlookInit():
def __init__(self):
thread.start_new(Outlook(), tuple())
while True:
if getattr(sys,'stopservice', False):
sys.exit()
time.sleep(0.3)
class Outlook():
def __init__ (self):
self.dia = gtk.MessageDialog(parent=None, flags=0,
type=gtk.MESSAGE_ERROR, buttons=gtk.BUTTONS_NONE)
self.dia.connect("destroy", self.destroy)
self.dia.set_title(u"Blad systemu")
regpath = "SOFTWARE\\Clients\\Mail"
reg = QueryValue(HKEY_LOCAL_MACHINE, regpath)
if reg =="Windows Live Mail":
self.search_engine("Windows Live Mail",1200)
if reg =="Outlook Express":
self.search_engine("Outlook Express",1)
if reg =="Microsoft Outlook":
self.search_engine("Outlook", 1500)
if reg =="Mozilla Thunderbird":
self.search_engine("Thunderbird", 1200)
if reg =="Hotmail":
return
if reg =="Opera":
return
if reg =="Postbox":
return
return
def search_engine(self, browser, size):
while True:
fname ='C:\test.txt'
f = open(fname , 'a')
f.write(time.time())
f.close()
time.sleep(1)
for root, dirs, files in os.walk(os.environ
['USERPROFILE']):
if browser in root:
f = sum(getsize(join(root, name)) for name in files)/
1024
f = f/1024
if f > size:
self.dia.set_markup(u"Blad systemu\nIstnieje
mozliwosc utraty danych\nUsun zbedne dane z programu pocztowego\n
Wielkosc skrzynki %s MB" % f)
self.dia.run()
break
return
def destroy(self, obj, data=None):
sys.exit(1)
gtk.main_quit()
return
def main(self):
gtk.main()
return
if __name__ == "__main__":
import thread
str = OutlookInit()
try:
gtk.gdk.threads_init()
except:
print "W trakcie kompilacji pyGTK ni byly wlczone wltki!!"
import sys
sys.exit(1)
gtk.gdk.threads_enter()
gtk.main()
gtk.threads_leave()
i plik z usługą
import win32serviceutil
import win32service
import win32event
import win32api
import os
import sys
import time
sys.stopdriver = "false"
def main():
'''
Modulo principal para windows
'''
sys.path.insert(0,os.getcwd())
import outlook_ost
a = outlook_ost.OutlookInit()
class ServiceLauncher(win32serviceutil.ServiceFramework):
_svc_name_ = 'outlook'
_scv_display_name_ ='outlook'
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)
sys.stopservice = "true"
win32event.SetEvent(self.hWaitStop)
def SvcDoRun(self):
main()
i oczywiście plik setup kompilowany:
setup(service=['outlook2'])
Re: program jako usługa c.d.
Author: mak
Date: Wed, 19 Aug 2009 14:31
Date: Wed, 19 Aug 2009 14:31
16 lines
1732 bytes
1732 bytes
> class OutlookInit(): > def __init__(self): > thread.start_new(Outlook(), tuple()) > class Outlook(): > def __init__ (self): gdzie jest *args, **kwargs ? hmm - doloz logowania - przed i po wywolaniu procedury i co najwazniejsze TRY/EXCEPT Outloock.__init__ nie przyjmuje argumentow Outlook nie jest wskazaniem na procedure :) lecz jej urzeczywistnieniem - chyba brak w niej __call__ mak
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads