Parcourir la barre des tâches

Résolu
DeathVB Messages postés 44 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 31 octobre 2006 - 24 oct. 2005 à 17:05
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 - 30 oct. 2005 à 20:41
Salut tout le monde !

Est-ce qu'il ya un moyen pour parcourir la barre des tâches ; par example lister tous les noms des programmes executés (même les dossiers et répertoires ouverts !)??

Mon idée c'est de faire un historique du genre (nom application/dossier ,date, ouvert à, fermé à)..

Merci d'avance.

"The only way to learn is be aware and hold on tight."

11 réponses

cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
24 oct. 2005 à 22:51
Tiens voici une adresse qui va te ravir je pense :)
http://www.vb-helper.com/howto_list_toplevel_tasks.html


Si la réponse te conviens merci de l'accepter
3
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
29 oct. 2005 à 14:39
Salut,
Je trainais pas hasard sur le site et je viens de tomber sur quelque chose qui devrait t'intéresser
http://vbfrance.com/code.aspx?ID=27148


Si la réponse te conviens merci de l'accepter
3
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
24 oct. 2005 à 22:40
Salut,
Regarde du coté des api GetActiveWindow et GetForegroundWindow !
Tu as un exemple dans l'API-Guide telechargeable ici http://www.mentalis.org/agnet/appdown.shtml


Si la réponse te conviens merci de l'accepter
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
24 oct. 2005 à 22:42
Oups désolé je me suis planté !
0

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

Posez votre question
DeathVB Messages postés 44 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 31 octobre 2006
24 oct. 2005 à 23:22
merci pour le coup de main, ca va surement m'aider

encore une chose..
comment on peut savoir; si les noms affichés dans la liste sont des programmes ou des répertoires ?!

et merci encore.

"The only way to learn is be aware and hold on tight."
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
25 oct. 2005 à 00:09
Alors il y a possibilité de savoir !
Il faut que tu récupères le process associé à tes applications ouvertes
Une fois que tu sais quelle appli est tel process alors tu test chaque appli et si les applis qui ont comme process "explorer.exe" alors se sont des dossiers ouverts

mais pose cette question sur le forum tu auras plus de chances d'avoir une réponse !
Bonne courage :)
0
DeathVB Messages postés 44 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 31 octobre 2006
29 oct. 2005 à 15:41
Oh ... ça c'est la meilleure, elle va sûrement m'être très utile!

et merci à toi willi au moins tu ne m'a pas oublié, car j'ai beau chercher, mais rien de très intéressant ... c'est trop sympa

Voila, une dernière chose (question d'enrichir un petit peu ce sujet):

Comme je l'ai déjà mentionner, mon idée c'était de faire un historique, et pour cela j'ai fait deux listview ; la 1ère -elle est invisible- qui se remplit à l'aide d'un timer et qui affiche les progs/dossiers en cours d'exécution au bout de chaque 1/2 seconde, et à chaque modification de cette liste(un programme ajouté ou supprimé), je parcours la 2ème listview -c'est la principale- et je fais mes testes; s'il existe dans la 2ème et supprimé de la 1ère alors je mets "terminé à..", s'il n'existe pas dans la 2ème et existe dans la 1ère alors je l'ajoute dans la 2ème(la principale)... et comme ça jusqu'à ce que je parcours toute la liste.

je vous laisse imaginer le code ; c'est très long et surtout très compliqué !!

Ya-t-il pas d'autres moyens pour éviter tout ce code; une dll ou une constante par exemple ou si vous avez des idées ?

Merci beaucoup pour votre aide.
et surtout merci de lire ce long message


"The only way to learn is be aware and hold on tight."
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
29 oct. 2005 à 16:40
En fait je recherchais quelques choses que j'avais vu auparavant d'un auteur et du coup j'ai parcouru ces sources et suis tombé sur celle que je t'ai donnée
Je pense qu'elle est intéressante pour toi car tu n'as qu'à la reprendre en cachant le listview, tu en ajoutes un autre qui va contenir d'évènements (fermeture/ouverture programmes) et si dans la colonne2 tu as "explorer.exe" alors un dossier est ouvert. Tout le boulot est déjà fait.

Pour répondre à ta question il n'y a pas d'autres solutions mais après tout dépende de la manière dont c'est codé. Car utilisé un timer toute les demie-seconde avec je suppose une boucle à l'intérieur doit etre un peut gourmant en temps processeur. La dans ta boucle tu peux insérer 'DoEvents' qui va laisser respirer le processeur. Met aussi ton timer à 1 seconde.... Si tu veux encore moins solicité ton cpu bloque le rafraichissement de tes listview avant d'entrée dans la boucle et réactive le une fois la boucle finis.
Tu verras déjà avec cela sa respirera mieux :)
Après pour le code si tu pouvais le fournir pour que je vois car il n'y a rien de long 10/15 lignes max je pense

Je ne suis pas sur d'avoir tout saisis mais
- la listview2 (la principale) c'est elle qui affiche les 'évènements' des programmes et dossiers qui se lancent et se terminent ?
- et la listview1 c'est celle qui contient toutes les fenetres (ouvert dans la barre des taches) ?
0
DeathVB Messages postés 44 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 31 octobre 2006
30 oct. 2005 à 15:16
Salut !

Voici le code mais il n'est pas complet, j'ai mis quelques commentaires pour mieux comprendre son fonctionnement.


Private Sub Timer_Timer()





ListTemp.ListItems.Clear


ListToplevelWindows ListTemp 'c la fonction qui remplit la ListTemp par les noms des progs/dossiers





'pour les listes;





'1) ListTemp c la liste qui contient le noms des progs/dossiers


'et qui se rafraichisse chaque 1/2sec (jai mis 1/2sec parce que je pense


'que le temps entre l'ouverture d'un prog et un autre, par un "utilisateur" ne sera pas moins d'une 1/2sec.



'pour cette listview on peut la remplacer par une simple liste, on a besoin que du nom du prog





'2) List c la liste principale ,c'est la liste que doit voir l'utilisateur


'elle contient 4 colonnes :nom,date,ouvert à,fermé à





If List.ListItems.Count < ListTemp.ListItems.Count Then 'si l'utilisateur ouvre un nouveau prog/dossier


For i = 1 To List.ListItems.Count


For j = 1 To ListTemp.ListItems.Count


If List.ListItems(i).ListSubItems(1) = ListTemp.ListItems(j).ListSubItems(1) And IsNull(List.ListItems(i).ListSubItems(3)) Then 'si la 4ème colonne(fermé à) de la List est pleine il doit ajouté ce programme comme un nouveau programme


Exit For


Else


'alors là je pense, ya 3 cas si le nouveau prog a été listé


'soit au début de ListTemp,soit au corps, soit à la fin


'pour le 1er cas et le 2eme cas je pense ya pas de problemes
'mais pour le dernier ..


End If


Next j


Next i


ElseIf List.ListItems.Count > ListTemp.ListItems.Count Then 'si l'utilisateur ferme un prog/dossier


'on parcours les deux listes, s'il un nom de List ne se trouve pas


'sur la ListTemp alors la 4ème colonne(fermet à..) affichera le temps de la fermeture


End If


End Sub

Je pense que c'est un petit peu compréhensible !
Si vous avez d'autres idées alors n'hésitez pas..

Et merci encore !

"The only way to learn is be aware and hold on tight."
0
DeathVB Messages postés 44 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 31 octobre 2006
30 oct. 2005 à 15:19
je m'excuse pour le désordre !!


"The only way to learn is be aware and hold on tight."
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
30 oct. 2005 à 20:41
bonjour,
Je vais partir de la source de ShareVB que j'ai trouvé hier et je vais l'adapter à ce que tu attends
Je vais regarder cela et je te tiens au courant...
0
Rejoignez-nous