memoryn70 Pubblicato: 14 Agosto 2008 Segnalazione Share Pubblicato: 14 Agosto 2008 Ciao! Mi servirebbe sapere un metodo in C++ da poter inserire in una libreria per python per rendere un task nascosto oppure come app di sistema, agendo senza bisogno di documento finestra o altro tenendo presente che devo fare un'estensione per python. Una cosa del genere vorrei fare: import taskutil ... taskutil.set_hidden(u"Nome app o uid") #Soprattutto questo mi servirebbe ... taskutil.set_system(u"Nome app o uid") .. Grazie in anticipo! Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 14 Agosto 2008 Segnalazione Share Pubblicato: 14 Agosto 2008 Puoi evitare che venga visualizzata dal task manager di symbian usando il metodo CApaWindowGroupName::SetHidden, ma usando un programma che elenca i task lo vedrai in ogni caso. Non ho capito il riferimento al documento finestra... Link to comment Condividi su altri siti More sharing options...
memoryn70 Pubblicato: 15 Agosto 2008 Autore Segnalazione Share Pubblicato: 15 Agosto 2008 (modificato) Puoi evitare che venga visualizzata dal task manager di symbian usando il metodo CApaWindowGroupName::SetHidden, ma usando un programma che elenca i task lo vedrai in ogni caso.Non ho capito il riferimento al documento finestra... Si certo! Se si usa vedi nascoste si... Cmq secondo te questo metodo CApaWindowGroupName::SetHidden funziona anche se eseguo da un'estensione di python? Modificato 15 Agosto 2008 da memoryn70 Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 15 Agosto 2008 Segnalazione Share Pubblicato: 15 Agosto 2008 Si, agisce direttamente sul window server, dovrebbe funzionare anche se lo esegui da un'estensione python senza problemi. Link to comment Condividi su altri siti More sharing options...
memoryn70 Pubblicato: 15 Agosto 2008 Autore Segnalazione Share Pubblicato: 15 Agosto 2008 Si, agisce direttamente sul window server, dovrebbe funzionare anche se lo esegui da un'estensione python senza problemi. Uhm ... io faccio cosi (ho visto da un altra estensione e ho modificato x il mio caso) ma non sembra che faccia niente, ho controllato con un programma ma rimane sempre normale in tutti e due i casi! Secondo te come posso fare? Sono sicuro che non da errori perché mi ritorna sempre 1 extern "C" PyObject * set_system(PyObject* /*self*/, PyObject* args) { RWsSession ws(CEikonEnv::Static()->WsSession()); CApaWindowGroupName* wgName; wgName = CApaWindowGroupName::NewLC(ws); wgName->SetSystem(ETrue); return Py_True; } extern "C" PyObject * set_hidden(PyObject* /*self*/) //, PyObject* args) { RWsSession ws(CEikonEnv::Static()->WsSession()); CApaWindowGroupName* wgName; //CArrayFixFlat<TInt>* wgl = new (ELeave) CArrayFixFlat<TInt>(5); //CleanupStack::PushL(wgl); //User::LeaveIfError(ws.WindowGroupList(wgl)); wgName = CApaWindowGroupName::NewLC(ws); wgName->SetHidden(ETrue); return Py_True; } Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 15 Agosto 2008 Segnalazione Share Pubblicato: 15 Agosto 2008 Esattamente, vedi qui: http://wiki.forum.nokia.com/index.php/Task...ow_to_find_them Link to comment Condividi su altri siti More sharing options...
memoryn70 Pubblicato: 16 Agosto 2008 Autore Segnalazione Share Pubblicato: 16 Agosto 2008 (modificato) Io non riesco più a capire niente Cioè sembra che il codice lo esegua in modo giusto ma non dà nessun risultato!! Secondo te dove sbaglio?? (Nessun warning oppure errori in compilazione) extern "C" PyObject * set_system(PyObject* /*self*/, PyObject* args) // Richiamo la funzione da python passandogli l'UID dell'app che mi interessa rendere nascosta { TUid uid; if (!PyArg_ParseTuple(args, "i", &uid)) return NULL; RWsSession& wsSession = CEikonEnv::Static()->WsSession(); CApaWindowGroupName* wgName=CApaWindowGroupName::NewL(wsSession); CleanupStack::PushL(wgName); CArrayFixFlat<TInt>* WindowGroupIds = new(ELeave)CArrayFixFlat<TInt>(1); CleanupStack::PushL(WindowGroupIds); User::LeaveIfError(wsSession.WindowGroupList(0,WindowGroupIds)); const TInt count = WindowGroupIds->Count(); for (TInt ii=0; ii<count; ii++) { TInt wgId = WindowGroupIds->At(ii); wgName->ConstructFromWgIdL(wgId); if (wgName->AppUid()==uid) { wgName->SetHidden(ETrue); //Ne questo wgName->SetSystem(ETrue); //Ne questo vanno! CleanupStack::PopAndDestroy(2);//WindowGroupIds, wgName return Py_True; //Sono sicuro che arriva qui perchè mi ritorna 1 //break; } //wgName->SetHidden(ETrue); //wgName->Caption() //wgName->AppUid().Name() //wgName->Hidden() //wgName->IsSystem() //wgName->IsBusy() //wgName->AppUid() } return Py_False; // Se metto un UID sbagliato va qui ovviamente } EDIT: ho trovato che si può cercare in un altro modo la finestra, provo pure questo!: void CExampleAppUi::SendKeyTest() { TKeyEvent event; event.iRepeats=0; event.iScanCode=0; event.iModifiers=EModifierCtrl | EModifierShift; event.iCode=CTRL('t'); // defined in COEDEF.H _LIT(KAppCaption,"System"); RWsSession& ws=iEikonEnv->WsSession(); TInt previous=0; CApaWindowGroupName::FindByCaption(KAppCaption,ws,previous); TApaTask task(ws); task.SetWgId(previous); if (!task.Exists()) User::Leave(KErrNotFound);task.BringToForeground(); // So we can see the results task.SendKey(event); } Modificato 16 Agosto 2008 da memoryn70 Link to comment Condividi su altri siti More sharing options...
memoryn70 Pubblicato: 16 Agosto 2008 Autore Segnalazione Share Pubblicato: 16 Agosto 2008 (modificato) Neanche cosi va..mi rendo conto che sbaglio io qualcosa allora!! _LIT(KAppCaption,"Python"); //RWsSession& ws=iEikonEnv->WsSession(); RWsSession& ws = CEikonEnv::Static()->WsSession(); TInt previous=0; CApaWindowGroupName::FindByCaption(KAppCaption,ws,previous); CApaWindowGroupName* wgName=CApaWindowGroupName::NewL(ws); //TInt wgId = WindowGroupIds->At(ii); wgName->ConstructFromWgIdL(previous); wgName->SetHidden(ETrue); Dammi 1 mano Socio!! Modificato 16 Agosto 2008 da memoryn70 Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 16 Agosto 2008 Segnalazione Share Pubblicato: 16 Agosto 2008 (modificato) Fossi in te proverei il primo metodo togliendo pero' il controllo sull'UID. Quello dovrebbe nascondere tutti quanti i task... for (TInt ii=0; ii<count; ii++) { TInt wgId = WindowGroupIds->At(ii); wgName->ConstructFromWgIdL(wgId); wgName->SetHidden(ETrue); wgName->SetSystem(ETrue); } CleanupStack::PopAndDestroy(2);//WindowGroupIds, wgName Se funzia dovrai poi aggiustare solo l'if, non so come perche' ad occhio sembra corretto, ma evidentemente c'e' qualche "impiccio" aggiuntivo. Modificato 16 Agosto 2008 da Il.Socio Link to comment Condividi su altri siti More sharing options...
memoryn70 Pubblicato: 17 Agosto 2008 Autore Segnalazione Share Pubblicato: 17 Agosto 2008 (modificato) Sarà ma non imposta nessun task nemmeno cosi!! :) Sto diventando matto! Cmq grazie dei tuoi aiuti! Modificato 17 Agosto 2008 da memoryn70 Link to comment Condividi su altri siti More sharing options...
kork Pubblicato: 17 Agosto 2008 Segnalazione Share Pubblicato: 17 Agosto 2008 Memory ti serve per toptime? Per nasconderlo dal task? Sarebbe bello se ci riuscissi!! Link to comment Condividi su altri siti More sharing options...
memoryn70 Pubblicato: 17 Agosto 2008 Autore Segnalazione Share Pubblicato: 17 Agosto 2008 Memory ti serve per toptime? Per nasconderlo dal task? Sarebbe bello se ci riuscissi!! Eh si proprio a quello! Link to comment Condividi su altri siti More sharing options...
memoryn70 Pubblicato: 17 Agosto 2008 Autore Segnalazione Share Pubblicato: 17 Agosto 2008 (modificato) Ce l'ho fatta per il SetSystem!!! Ho risolto cosi: extern "C" PyObject * set_system(PyObject* /*self*/) //, PyObject* args) { CEikonEnv::Static()->SetSystem(ETrue); return Py_True; } Quindi appena lo attivo non c'è il problema del tasto rosso... Per nascondere non ho ancora risolto niente purtroppo....Cosi come ho fatto sopra non va perchè manca il metodo e con il ciclo for non c'è verso che va! Vabbè intanto 1 cosa l'ho fatta... Modificato 17 Agosto 2008 da memoryn70 Link to comment Condividi su altri siti More sharing options...
kork Pubblicato: 17 Agosto 2008 Segnalazione Share Pubblicato: 17 Agosto 2008 Dai memory ci vuole calma e concentrazione c'è la farai sei un genio!! già una cosa l'hai fatta e sono convinto che riuscirai a fare anche l'altra!!! Quando puoi mi rispondi al post di toptime? Grazie!! Link to comment Condividi su altri siti More sharing options...
memoryn70 Pubblicato: 18 Agosto 2008 Autore Segnalazione Share Pubblicato: 18 Agosto 2008 (modificato) Finalmente ce l'ho fatta !!! Ho fatto cosi (trovato in internet e modificato iEkonEnv con CEikonEnv::Static()) Cosi si nasconde il task nel quale viene eseguito TInt wgId = CEikonEnv::Static()->RootWin().Identifier(); RWsSession session = CEikonEnv::Static()->WsSession(); CApaWindowGroupName* wgName = CApaWindowGroupName::NewLC(session, wgId); wgName->SetHidden(ETrue); wgName->SetWindowGroupName(CEikonEnv::Static()->RootWin()); CleanupStack::PopAndDestroy(); // wgName Era ora che andasse!! Grazie Socio cmq per le dritte Ora sistemo la libreria per python e poi posto Modificato 18 Agosto 2008 da memoryn70 1 Link to comment Condividi su altri siti More sharing options...
kork Pubblicato: 18 Agosto 2008 Segnalazione Share Pubblicato: 18 Agosto 2008 Grandissimo memory ne ero convito che ci sasresti riuscito grandissimo!! Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 18 Agosto 2008 Segnalazione Share Pubblicato: 18 Agosto 2008 (modificato) Grande Memory! Ormai sei diventato un mago delle estensioni python!!! Modificato 18 Agosto 2008 da Il.Socio Link to comment Condividi su altri siti More sharing options...
memoryn70 Pubblicato: 18 Agosto 2008 Autore Segnalazione Share Pubblicato: 18 Agosto 2008 Eh dai ormai incomincio a cavarmela Link to comment Condividi su altri siti More sharing options...
alva93 Pubblicato: 20 Novembre 2013 Segnalazione Share Pubblicato: 20 Novembre 2013 Finalmente ce l'ho fatta !!! Ho fatto cosi (trovato in internet e modificato iEkonEnv con CEikonEnv::Static()) Cosi si nasconde il task nel quale viene eseguito TInt wgId = CEikonEnv::Static()->RootWin().Identifier(); RWsSession session = CEikonEnv::Static()->WsSession(); CApaWindowGroupName* wgName = CApaWindowGroupName::NewLC(session, wgId); wgName->SetHidden(ETrue); wgName->SetWindowGroupName(CEikonEnv::Static()->RootWin()); CleanupStack::PopAndDestroy(); // wgNameEra ora che andasse!! Grazie Socio cmq per le dritte Ora sistemo la libreria per python e poi posto Grazie Memory! Anche dopo 5 anni la tua risposta mi è stata utilissima per nascondere un'app dal TaskManager! 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