Détecter un programme [Résolu]

deck_bsd 1244 Messages postés jeudi 31 mars 2005Date d'inscription 3 août 2016 Dernière intervention - 20 juil. 2008 à 16:11 - Dernière réponse : deck_bsd 1244 Messages postés jeudi 31 mars 2005Date d'inscription 3 août 2016 Dernière intervention
- 21 juil. 2008 à 10:06
Yop à tous,

Voila je voudrait savoir si il y une méthode plus optimisée pour détecter le lancement d'un prgramme que de vérifier toutes les secondes dans la liste des processus si le nom de l'éxécutable aparait ?

Merci d'avance.

++
deck_bsd
___________________________________
[http://deck-bsd.eurower.net]
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
racpp 1910 Messages postés vendredi 18 juin 2004Date d'inscription 14 novembre 2014 Dernière intervention - 20 juil. 2008 à 16:35
1
Merci
Salut,
Si le programme est fenêtré tu peux utiliser RegisterShellHookWindow() pour recevoir des notifications dès la création de la fenêtre voulue.
A mon avis, la meilleure solution, qui marche pour tous les processus, est d'utiliser un driver en Kernel-Mode. Grâce à PsSetCreateProcessNotifyRoutine() on peut déclarer une fonction CALLBACK qui sera appelée par le système dès la création ou la fin d'un processus. Cette CALLBACK recevra comme 2ème paramètre l'ID du processus et comme 3ème paramètre un flag indiquant le lancement ou la fin du processus. Il est possible d'utiliser un Event crée avec IoCreateNotificationEvent()  récupérable par l'application User-Mode pour récupérer et afficher les infos du processus.

Merci racpp 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de racpp
jeffy131 123 Messages postés samedi 14 juillet 2007Date d'inscription 29 mars 2009 Dernière intervention - 20 juil. 2008 à 20:48
0
Merci
Il n'y a aucunement besoin de driver
C'est une FAQ de usenet (apis de notification asynchrone de création de process)
cf les ng de prog avancée
(comp.os.ms-windows.programmer.win32,
fr.comp.os.ms-windows.programmation,
microsoft.public.win32.programmer.kernel, etc..)
Commenter la réponse de jeffy131
racpp 1910 Messages postés vendredi 18 juin 2004Date d'inscription 14 novembre 2014 Dernière intervention - 20 juil. 2008 à 23:10
0
Merci
jeffy131 >> Il parait que la programmation de driver te fait peur. Il faut savoir qu'en programmation il y 'a des problèmes insolubles en User-Mode alors qu'un petit driver de quelques lignes de code suffit pour les résoudre. Dans le cas de la notification  de la création de processus, toutes les méthodes User-Mode utilisant les hooks ont des limites. Il suffit de se reseigner sur le sujet pour s'en convaincre. Alors que l'utilisation d'un tout petit driver suffit pour recevoir de telles notifications de la meilleure des manières.
Commenter la réponse de racpp
deck_bsd 1244 Messages postés jeudi 31 mars 2005Date d'inscription 3 août 2016 Dernière intervention - 21 juil. 2008 à 10:06
0
Merci
Merci pour vos réponses :)

++
deck_bsd
___________________________________
[http://deck-bsd.eurower.net]
Commenter la réponse de deck_bsd

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.