Détecter un programme

Résolu
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 - 20 juil. 2008 à 16:11
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 - 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]

4 réponses

racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
20 juil. 2008 à 16:35
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.
2
jeffy131 Messages postés 123 Date d'inscription samedi 14 juillet 2007 Statut Membre Dernière intervention 29 mars 2009 1
20 juil. 2008 à 20:48
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..)
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
20 juil. 2008 à 23:10
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.
0
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
21 juil. 2008 à 10:06
Merci pour vos réponses :)

++
deck_bsd
___________________________________
[http://deck-bsd.eurower.net]
0
Rejoignez-nous