Nokioteca [Nokia] Forum: [c++] Impostare Task Come Nascosto O Sistema - Nokioteca [Nokia] Forum

Salta al contenuto

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

[c++] Impostare Task Come Nascosto O Sistema

#1 L   memoryn70 

  • Millennium Member
  • Gruppo: Developer
  • Messaggi: 2112
  • Iscritto: 02 maggio 2007
  • Cellulare:Nokia N70
  • Firmware:5.0609.2.0.1

Inviato 14 agosto 2008 - 13:25

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! :thumbs:
0

#2 L   Il.Socio 

  • Nokioteca Staff
  • Gruppo: Moderatore
  • Messaggi: 7141
  • Iscritto: 02 dicembre 2005
  • Località:Torino
  • Cellulare:N8-00

Inviato 14 agosto 2008 - 22:57

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...
Per segnalare allo Staff un messaggio non conforme al regolamento è sufficiente premere il bottone "Segnala" posizionato in basso a sinistra di ciascun messaggio.
0

#3 L   memoryn70 

  • Millennium Member
  • Gruppo: Developer
  • Messaggi: 2112
  • Iscritto: 02 maggio 2007
  • Cellulare:Nokia N70
  • Firmware:5.0609.2.0.1

Inviato 15 agosto 2008 - 10:42

Visualizza MessaggiIl.Socio, il 14/08/2008 - 23:57, ha scritto:

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?

Messaggio modificato da memoryn70 il 15 agosto 2008 - 10:44

0

#4 L   Il.Socio 

  • Nokioteca Staff
  • Gruppo: Moderatore
  • Messaggi: 7141
  • Iscritto: 02 dicembre 2005
  • Località:Torino
  • Cellulare:N8-00

Inviato 15 agosto 2008 - 12:01

Si, agisce direttamente sul window server, dovrebbe funzionare anche se lo esegui da un'estensione python senza problemi.
Per segnalare allo Staff un messaggio non conforme al regolamento è sufficiente premere il bottone "Segnala" posizionato in basso a sinistra di ciascun messaggio.
0

#5 L   memoryn70 

  • Millennium Member
  • Gruppo: Developer
  • Messaggi: 2112
  • Iscritto: 02 maggio 2007
  • Cellulare:Nokia N70
  • Firmware:5.0609.2.0.1

Inviato 15 agosto 2008 - 13:01

Visualizza MessaggiIl.Socio, il 15/08/2008 - 13:01, ha scritto:

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;

}
0

#6 L   Il.Socio 

  • Nokioteca Staff
  • Gruppo: Moderatore
  • Messaggi: 7141
  • Iscritto: 02 dicembre 2005
  • Località:Torino
  • Cellulare:N8-00

Inviato 15 agosto 2008 - 13:22

Esattamente, vedi qui: :unsure:
Per visualizzare questo link registrati o esegui il log in.

Per segnalare allo Staff un messaggio non conforme al regolamento è sufficiente premere il bottone "Segnala" posizionato in basso a sinistra di ciascun messaggio.
0

#7 L   memoryn70 

  • Millennium Member
  • Gruppo: Developer
  • Messaggi: 2112
  • Iscritto: 02 maggio 2007
  • Cellulare:Nokia N70
  • Firmware:5.0609.2.0.1

Inviato 16 agosto 2008 - 11:54

Io non riesco più a capire niente :crying_anim02: 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);
	  }

Messaggio modificato da memoryn70 il 16 agosto 2008 - 11:58

0

#8 L   memoryn70 

  • Millennium Member
  • Gruppo: Developer
  • Messaggi: 2112
  • Iscritto: 02 maggio 2007
  • Cellulare:Nokia N70
  • Firmware:5.0609.2.0.1

Inviato 16 agosto 2008 - 12:08

:crying_anim02: :worried: 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!! :lol:

Messaggio modificato da memoryn70 il 16 agosto 2008 - 12:08

0

#9 L   Il.Socio 

  • Nokioteca Staff
  • Gruppo: Moderatore
  • Messaggi: 7141
  • Iscritto: 02 dicembre 2005
  • Località:Torino
  • Cellulare:N8-00

Inviato 16 agosto 2008 - 22:49

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.

Messaggio modificato da Il.Socio il 16 agosto 2008 - 22:52

Per segnalare allo Staff un messaggio non conforme al regolamento è sufficiente premere il bottone "Segnala" posizionato in basso a sinistra di ciascun messaggio.
0

#10 L   memoryn70 

  • Millennium Member
  • Gruppo: Developer
  • Messaggi: 2112
  • Iscritto: 02 maggio 2007
  • Cellulare:Nokia N70
  • Firmware:5.0609.2.0.1

Inviato 17 agosto 2008 - 11:56

Sarà ma non imposta nessun task nemmeno cosi!! :) :)
Sto diventando matto! <_<
Cmq grazie dei tuoi aiuti!

Messaggio modificato da memoryn70 il 17 agosto 2008 - 11:56

0

#11 L   kork 

  • Millennium Member
  • Gruppo: ThemeMaker
  • Messaggi: 1010
  • Iscritto: 08 dicembre 2005
  • Località:Prov.Palermo
  • Cellulare:N95
  • Firmware:30.0.015

Inviato 17 agosto 2008 - 17:45

Memory ti serve per toptime? Per nasconderlo dal task? Sarebbe bello se ci riuscissi!!
0

#12 L   memoryn70 

  • Millennium Member
  • Gruppo: Developer
  • Messaggi: 2112
  • Iscritto: 02 maggio 2007
  • Cellulare:Nokia N70
  • Firmware:5.0609.2.0.1

Inviato 17 agosto 2008 - 19:38

Visualizza Messaggikork, il 17/08/2008 - 18:45, ha scritto:

Memory ti serve per toptime? Per nasconderlo dal task? Sarebbe bello se ci riuscissi!!


Eh si proprio a quello!
0

#13 L   memoryn70 

  • Millennium Member
  • Gruppo: Developer
  • Messaggi: 2112
  • Iscritto: 02 maggio 2007
  • Cellulare:Nokia N70
  • Firmware:5.0609.2.0.1

Inviato 17 agosto 2008 - 21:01

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...

Messaggio modificato da memoryn70 il 17 agosto 2008 - 21:17

0

#14 L   kork 

  • Millennium Member
  • Gruppo: ThemeMaker
  • Messaggi: 1010
  • Iscritto: 08 dicembre 2005
  • Località:Prov.Palermo
  • Cellulare:N95
  • Firmware:30.0.015

Inviato 17 agosto 2008 - 23:33

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!!
0

#15 L   memoryn70 

  • Millennium Member
  • Gruppo: Developer
  • Messaggi: 2112
  • Iscritto: 02 maggio 2007
  • Cellulare:Nokia N70
  • Firmware:5.0609.2.0.1

Inviato 18 agosto 2008 - 17:45

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!! :D
Grazie Socio cmq per le dritte ;)
Ora sistemo la libreria per python e poi posto

Messaggio modificato da memoryn70 il 18 agosto 2008 - 17:46

0

#16 L   kork 

  • Millennium Member
  • Gruppo: ThemeMaker
  • Messaggi: 1010
  • Iscritto: 08 dicembre 2005
  • Località:Prov.Palermo
  • Cellulare:N95
  • Firmware:30.0.015

Inviato 18 agosto 2008 - 17:49

Grandissimo memory ne ero convito che ci sasresti riuscito
grandissimo!!
0

#17 L   Il.Socio 

  • Nokioteca Staff
  • Gruppo: Moderatore
  • Messaggi: 7141
  • Iscritto: 02 dicembre 2005
  • Località:Torino
  • Cellulare:N8-00

Inviato 18 agosto 2008 - 19:56

Grande Memory! Ormai sei diventato un mago delle estensioni python!!! :)

Messaggio modificato da Il.Socio il 18 agosto 2008 - 19:57

Per segnalare allo Staff un messaggio non conforme al regolamento è sufficiente premere il bottone "Segnala" posizionato in basso a sinistra di ciascun messaggio.
0

#18 L   memoryn70 

  • Millennium Member
  • Gruppo: Developer
  • Messaggi: 2112
  • Iscritto: 02 maggio 2007
  • Cellulare:Nokia N70
  • Firmware:5.0609.2.0.1

Inviato 18 agosto 2008 - 20:01

Eh dai ormai incomincio a cavarmela :)
0

Condividi questa discussione:


Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione