acasta69 Pubblicato: 25 Settembre 2009 Segnalazione Share Pubblicato: 25 Settembre 2009 Ciao a tutti, sto cercando di implemetare il codice che previene l'uscita dell'applicazione quando si preme il tasto rosso. Sto usando un codice di esempio che ho visto da diverse parti (ForumNokia e anche questo forum in un vecchio thread), ma non riesco a farlo funzionare. In pratica mi sembra che la funzione definita con sys.exitfunc non venga mai chiamata, e premendo il tasto rosso il mio script termina e si chiude la shell di python. Il funzionamento e' lo stesso sia sull'emulatore sia sul mio telefono. Il codice e' il seguente: import appuifw import e32, sys lock = e32.Ao_lock() def quit(): lock.signal() appuifw.app.exit_key_handler = quit def myexitfunc(): appuifw.note(u"MyExitFunc", 'info') sys.exitfunc = myexitfunc appuifw.note(u"Running", 'info') lock.wait() Nel codice qua sopra non c'e' nemmeno la chiamata lock.wait() dentro myexitfunc (per ora mi basterebbe vedere che la funzione viene effettivamente chiamata), ma ho provato anche a metterla e non cambia niente: quando premo il tasto rosso il tutto si chiude. Mi aiutate a capire dove sbaglio? Grazie! Ale Link to comment Condividi su altri siti More sharing options...
madhacker Pubblicato: 25 Settembre 2009 Segnalazione Share Pubblicato: 25 Settembre 2009 su questa pagina c'era questo codice import appuifw, e32, sys #Create an active object app_lock = e32.Ao_lock() #Define the function to be called when the right softkey is pressed def quit(): app_lock.signal() appuifw.app.set_exit() #Set it as the right softkey's function appuifw.app.exit_key_handler = quit #Define the function to be called when the red key is simulated #The function calls the active object's wait method def myexitfunc(): s = appuifw.app.screen appuifw.app.screen = 'large' appuifw.app.screen = s app_lock.wait() #Set it as the red key's function sys.exitfunc = myexitfunc #Application code goes here se lo salvi in un file .py e lo lanci dalla ScriptShell apparentemente non accade nulla, ma poi quando premi il tasto rosso vedrai che la Shell non si chiude. Direi che lo script è funzionante Link to comment Condividi su altri siti More sharing options...
acasta69 Pubblicato: 25 Settembre 2009 Autore Segnalazione Share Pubblicato: 25 Settembre 2009 Boh, ho provato a copiare il codice cosi' com'e' ed usarlo sia sull'emulatore sia sul mio telefono. In entrambi i casi premendo il tasto rosso la shell si chiude. Potrebbe essere perche' manca il "corpo" dell'applicazione vera e propria, cioe' quello script definisce ed assegna alcune funzioni, ma poi termina senza fare nient'altro? Cerchero' di fare qualche altra prova nel week-end. Per il momento grazie per la risposta! Ale Link to comment Condividi su altri siti More sharing options...
madhacker Pubblicato: 25 Settembre 2009 Segnalazione Share Pubblicato: 25 Settembre 2009 molto strano per capire se la shell si chiude o no, prima di avviare lo script, scrivi una parola, poi avvi lo script, poi premi il tasto rosso e "riapri" la shell. vedrai che c'è ancora scritta quella frase, il che significherebbe che non si è chiusa una volta che hai testato ciò, puoi aggiungere il codice alla fine dello script Link to comment Condividi su altri siti More sharing options...
acasta69 Pubblicato: 26 Settembre 2009 Autore Segnalazione Share Pubblicato: 26 Settembre 2009 Ho appena provato: la parola scritta non compare, quindi in effetti la shell si e' chiusa e riaperta. Ma ero quasi certo di questo: non compariva nell'elenco delle applicazioni che compare tenendo premuto il tasto "home". Appena ho mezz'ora faccio qualche altro test. Link to comment Condividi su altri siti More sharing options...
madhacker Pubblicato: 26 Settembre 2009 Segnalazione Share Pubblicato: 26 Settembre 2009 mi sorge un dubbio.... che versione di python ( e quindi di shell ) hai ?? Link to comment Condividi su altri siti More sharing options...
acasta69 Pubblicato: 26 Settembre 2009 Autore Segnalazione Share Pubblicato: 26 Settembre 2009 mi sorge un dubbio.... che versione di python ( e quindi di shell ) hai ?? Ho la 1.9.7. Al lancio della shell compare la scritta Python for S60 Version 1.9.7 svn 3733. Il telefono e' un Nokia E51 e la versione dell'SDK e' quella per S60 3rd edition FP1. Link to comment Condividi su altri siti More sharing options...
madhacker Pubblicato: 27 Settembre 2009 Segnalazione Share Pubblicato: 27 Settembre 2009 (modificato) prova lo script usando la versione 1.4.5 di python e di scriptshell possono coesistere entrambe sullo stesso cellulare anche su memorie di installazioni differenti sulla 1.4.5 funziona bene, immagino che sulla 1.9.7 siano cambiate le cose Modificato 27 Settembre 2009 da madhacker Link to comment Condividi su altri siti More sharing options...
acasta69 Pubblicato: 27 Settembre 2009 Autore Segnalazione Share Pubblicato: 27 Settembre 2009 Grazie per la dritta, oggi pomeriggio provo. Link to comment Condividi su altri siti More sharing options...
acasta69 Pubblicato: 28 Settembre 2009 Autore Segnalazione Share Pubblicato: 28 Settembre 2009 Ho provato con la versione 1.4.5 e funziona: se premo il tasto rosso dopo aver fatto girare lo script, mi ritrovo la shell ancora aperta in background. Peccato pero': non capisco perche' questa cosa piuttosto utile non sia piu' disponibile nelle ultime versioni... Grazie ancora per l'aiuto! Link to comment Condividi su altri siti More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Accedi Ora