Форум сайта python.su
Второй день уже копаюсь и что то никак ничего понять не могу.
Мне нужно что бы демон выводил окно TopWindow на экран. На просторах интернета нашел всего один пример:
import appuifw
import e32
import thread
lock = e32.Ao_lock()
lockTHR = thread.allocate_lock()
###### ##############################################
i = 0
def funcDaemon():
global i
while(1):
lockTHR.acquire()
e32.ao_sleep(1)
open('E:\\Others\\tmp.txt', 'a').write(str(i)+"\n")
i+=1
lockTHR.release()
####################################################################
appuifw.app.title = u'DaemonS60'
appuifw.app.exit_key_handler = lambda:lock.signal()
print 'DaemonS60 - Start'
thread.start_new_thread(funcDaemon, ())
lock.wait()
print 'DaemonS60 - Stop'
import appuifw
import e32
import thread
import TopWindow
lock = e32.Ao_lock()
lockTHR = thread.allocate_lock()
#################################
def funcDaemon():
screen = TopWindow.TopWindow()
img =graphics.Image.open(('C:\\img.gif'))
screen.position=(10,50)
screen.add_image(img, (0,0,10,70))
screen.size = (70,90)
screen.corner_type = 'square'
screen.shadow = (7)
screen.show()
####################################################################
appuifw.app.title = u'DaemonS60'
appuifw.app.exit_key_handler = lambda:lock.signal()
print 'DaemonS60 - Start'
thread.start_new_thread(funcDaemon, ())
lock.wait()
print 'DaemonS60 - Stop'
Офлайн
e32.start_server(u"E:\\your_script.py")
Отредактировано (Март 24, 2011 22:57:02)
Офлайн
Затрагивал вопросы написания “демона” в этой статье http://habrahabr.ru/blogs/python/77452/
Офлайн
Вроде все понял. Запускаю «демона», убиваю его, это все получается. Но возникла новая проблема…мне надо чтобы окошко выводилось только на главном экране, тоесть код выглядит примерно так:
#-------------------------
def ru(text): return text.decode('utf-8')
#-------------------------
import e32
import TopWindow
import graphics
import appswitch
#-------------------------
screen = TopWindow.TopWindow()
img =graphics.Image.open(('C:\\img.gif'))
screen.position=(10,10)
screen.add_image(img, (0,0,12,12))
screen.size = (12,12)
screen.corner_type = 'square'
screen.shadow = (2)
while 1:
if appswitch.application_list(1)[0]!=ru('Телефон'): screen.hide()
else: screen.show()
e32.ao_sleep(0.1)
e32.Ao_lock().wait()
Офлайн