Trouver l'application qui a le focus

cs_Tolliap Messages postés 60 Date d'inscription lundi 4 décembre 2006 Statut Membre Dernière intervention 11 janvier 2013 - 12 août 2008 à 15:18
Tilois Messages postés 721 Date d'inscription dimanche 10 juin 2001 Statut Membre Dernière intervention 27 mars 2011 - 12 août 2008 à 18:17
Bonours,

Je cherche à trouver l'application qui se trouve en focus

ex : Plusieurs applications sont lancées, et l'utilisateur travaille sur le notpad, le nom du processus du notpad  m'est renvoyé.

Quelqu'un aurai une idée comment faire?

Merci

Alex

Qui ne tente rien, n'a rien

7 réponses

Tilois Messages postés 721 Date d'inscription dimanche 10 juin 2001 Statut Membre Dernière intervention 27 mars 2011 7
12 août 2008 à 15:44
Il faut faire cela en trois étapes et en regardant du coté des API windows:


Tout d'abord trouver la fenêtre active: GetActiveWindow (http://msdn.microsoft.com/en-us/library/ms646292(VS.85).aspx)


Ensuite trouver le PID du processus de cette fenêtre: GetWindowThreadProcessId (http://msdn.microsoft.com/en-us/library/ms633522(VS.85).aspx)


Enfin, avec le PID du processus, et en regardant du coté dela classe Sytem.Diagnostics.Process du framework .NET, tu trouveras le nom de l'exécutable.
0
Tilois Messages postés 721 Date d'inscription dimanche 10 juin 2001 Statut Membre Dernière intervention 27 mars 2011 7
12 août 2008 à 15:58
tu fais : TreeView.BeginUpdate avant de commencer le chargement et ensuite TreeView.EndUpdate quand c'est fini. Le treeview ne se rafraichira plus pendant le chargement, donc ca ira plus vite.
0
cs_Tolliap Messages postés 60 Date d'inscription lundi 4 décembre 2006 Statut Membre Dernière intervention 11 janvier 2013
12 août 2008 à 16:06
Merci de ta réponse aussi rapide,

Le probleme c'est que GetActiveWindow() me renvoie 0 a chaque fois es normale?

Du coup le reste ne marche pas...

Qui ne tente rien, n'a rien
0
Tilois Messages postés 721 Date d'inscription dimanche 10 juin 2001 Statut Membre Dernière intervention 27 mars 2011 7
12 août 2008 à 16:09
Désolé, la fonction c'est GetForegroundWindow (http://msdn.microsoft.com/en-us/library/ms633505(VS.85).aspx)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Tolliap Messages postés 60 Date d'inscription lundi 4 décembre 2006 Statut Membre Dernière intervention 11 janvier 2013
12 août 2008 à 16:22
J'ai qu'une chose à dire....merci

Qui ne tente rien, n'a rien
0
cs_Tolliap Messages postés 60 Date d'inscription lundi 4 décembre 2006 Statut Membre Dernière intervention 11 janvier 2013
12 août 2008 à 16:42
Par contre je n'arrive pas a récupéré le processus grâce au PID, j'ai beau chercher, je ne trouve pas...

Qui ne tente rien, n'a rien
0
Tilois Messages postés 721 Date d'inscription dimanche 10 juin 2001 Statut Membre Dernière intervention 27 mars 2011 7
12 août 2008 à 18:17
int

idCherche=0;



foreach

(


Process

p


in





Process

.GetProcesses)
{



   if

(p.Id == idCherche)
   {
      


// on a le processus cherché
   

}
}

Ne pas oublier :using

System.Diagnostics;
0
Rejoignez-nous