"Applications actives"

Résolu
genoudr Messages postés 8 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 17 octobre 2007 - 2 oct. 2007 à 15:45
genoudr Messages postés 8 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 17 octobre 2007 - 3 oct. 2007 à 10:33
Bonjour,

Je cherche un moyen d'obtenir le handle des "applications active" sur mon ordinateur...
Par applications actives, j'entend les applications visible dans le gestionnaire de tâche sous l'onglet Applications...

J'ai vu, à l'aide de ProcessExplorer, qu'un moyen de les différencier pourrait être par le windows statut (qui est à running)...

J'utilise actuellement une structure de type PROCESSENTRY32 qui me permet la récupération de l'ID ainsi que du nom de chaque processus, la plupart des autres attributs ne sont plus utilisé et sont à 0 (d'après l'API Win32)...
Malheureusement, aucun attribut donnant un éventuel statut ou autre information utile pour moi...

Y a t'il une fonction, où une approche différente pour obtenir uniquement ces processus ?

Merci pour votre aide

Environnement de programmation :

Windows XP Pro SP2
Microsoft Visual C++ 2005 Pro .NET 2.0

4 réponses

BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 20
2 oct. 2007 à 18:45
EnumWindows()

ciao...
BruNews, MVP VC++
3
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 20
3 oct. 2007 à 10:26
IsWindowVisible()

ciao...
BruNews, MVP VC++
3
genoudr Messages postés 8 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 17 octobre 2007
3 oct. 2007 à 10:20
Merci BruNews,

c'est exactement se que je cherchais...

Quel doit être le deuxième paramètre de la fonction ?
J'ai vu sur MSDN :

    lParam
        [in] Specifies an application-defined value to be passed to the callback
function.

Seulement j'ignore quels sont les possibilités !

Voici mon code :

BOOL CALLBACK EnumWindowsProc( HWND hwnd, LPARAM lParam )
{
     char szName[TAILLE_BUFFER];
     GetWindowText( hwnd, szName, TAILLE_BUFFER );
     printf( "%s\n", szName );

     return 1;
}

int main( int argc, char *argv[] )
{
...
EnumWindows( EnumWindowsProc, 0 );
...
}

La liste que j'obtiens est beaucoup plus longue que les applications du gestionnaire des tâches...

Merci pour ton aide !
0
genoudr Messages postés 8 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 17 octobre 2007
3 oct. 2007 à 10:33
Super, merci beaucoup !
0