La liste des tâches comme dans l'onglet application du gestionnaire des tâches

Soyez le premier à donner votre avis sur cette source.

Vue 8 206 fois - Téléchargée 1 351 fois

Description

Ce code permet d'obtenir la liste de ce que Windows considère comme une tâche et qu'il affiche dans l'onglet Application du gestionnaire des tâches et dans Alt-Tab.
Il permet aussi de savoir si une application est bloquée par une api non documentée IsHungAppWindow. Les icônes sont représentées.

La liste des tâches comprend toutes les fenêtres de premier plan qui répondent à certains critères comme n'avoir ni parent, ni propriétaire, être visible (IsWindowVisible) et ne pas être le Progman...

Ce code affiche aussi la liste des processus pour comparaison.

Conclusion :


Ce code se base sur les critères trouvés à la page suivante : http://upc.pkmn.co.uk/win32/task.shtml et http://upc.pkmn.co.uk/win32/nonresp.shtml

N'hésitez pas à commenter et à noter...

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

ShareVB
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
11 -
salut,

ah, oui, biensûr...je pensais que tu parlais de VB6...c'est vrai qu'en .Net, tout est plus simple...

ShareVB
LaTatadu91
Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
26 avril 2013
1 -
a priori c'est possible aussi comme ceci :
Dim myProcesses() As Process
myProcesses = Process.GetProcessesByName("blabla")
If myProcesses(0).Responding Then
Console.WriteLine("Status: Responding to user interface")
Else
Console.WriteLine("Status: Not Responding")
myProcesses(0).CloseMainWindow()
'Si il n'est pas déjà lancé on le lance donc manuellement
myProcesses(0).StartInfo.FileName = "C:\blabla.exe"
'Définition du style de la fenêtre (maximisé, minimisé, normal, caché)
myProcesses(0).StartInfo.WindowStyle = ProcessWindowStyle.Normal
'Démarrage du process
myProcesses(0).Start()
End If

nan?
ShareVB
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
11 -
salut,

pour faire, ca il te faut :
-> récupérer le ProcessID du processus dont tu connais le nom (voir les fonctions de ce code)
-> parcourir la liste des fenêtres ouvertes avec GetWindow ou EnumWindows
-> pour chaque hwnd récupéré, utiliser GetWindowThreadProcessId pour avoir le ProcessID de la fenêtre hwnd
-> si ca match, alors tu testes avec IsHungMachinTruc présent dans cette source
-> si isHung, alors terminateprocess et puis create process pour le restarter

un peu dans ce genre là : http://vbnet.mvps.org/index.html?code/system/shellhwnd.htm

ShareVB
LaTatadu91
Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
26 avril 2013
1 -
salut,

je cherche un truc en rapport avec les processus
je voudrais detecter quand un process est planté style "ne reponds pas"
comment le savoir? quand on connait que le nom du processus?
ensuite le tuer definitivement puis relancer...

merci de m'aider si tu peux ;-)
violent_ken
Messages postés
1822
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
26 octobre 2010
-
Damn.... mes excuses...

J'ai cru que quelqu'un s'était approprié ton code, mais je n'avais pas vu que ce quelqu'un était toi !

Encore désolé !
lol
@+

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.