deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 2016
-
20 juil. 2008 à 16:11
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDerniè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 ?
racpp
Messages postés1910Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201416 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.
jeffy131
Messages postés123Date d'inscriptionsamedi 14 juillet 2007StatutMembreDernière intervention29 mars 20091 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..)
racpp
Messages postés1910Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201416 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.