Accueil > Forum > > > > Détection de lancement d'applications
Détection de lancement d'applications
mercredi 14 janvier 2009 à 11:59:28 |
Détection de lancement d'applications

buno
|
Ami(e)s de la communauté, bonjour! J'aimerais avoir votre avis sur une question qui me préoccupe en ce moment. Je dois développer un petit composant natif qui retourne, parmi les applications ouvertes sur ma machine, celles qui sont, par exemple, dans une certaine liste blanche, du style: - Microsoft Excel - MaFiche.xls - Internet Explorer - CPPFrance.com ... L'objectif final étant de récupérer le handle des fenêtres des appli "autorisées". Mon souci concerne la récupération des applications, ou fenêtres. D'après mes recherches sur le sujet, 2 possibilités s'offrent à moi: - faire un timer qui récupère la liste des applications ouvertes (par exemple à partir de la source de BruNews) qui m'oblige à faire une différence de liste pour voir les changements - faire un service, ou driver, qui est notifié à chaque lancement de processus mais qui ne détecte pas les différentes "applications" au sens gestionnaire de tâches Est-ce quelqu'un s'est déjà confronté à ce problème? Avez-vous des informations à me donner? Merci d'avance de vos retours. @+ Buno ---------------------------------------- L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
|
|
mercredi 14 janvier 2009 à 13:27:18 |
Re : Détection de lancement d'applications
|
mercredi 14 janvier 2009 à 16:56:01 |
Re : Détection de lancement d'applications

buno
|
Salut Darunia, Si je comprends bien, ce que tu veux me dire c'est que je peux créer une dll qui envoie un message à mon appli à chaque démarrage de process utilisant User32.dll, c'est ça? 2 questions: - peu importe les droits utilisateur? - c'est au niveau process ou application? Je m'explique. Tu ouvre IE. Sur un lien, tu fais "clic droit > ouvrir dans une nouvelle fenetre". Une autre fenetre se lance. Dans le gestionnaire des tâches, j'ai bien 2 entrées dans l'onglet "Application" mais un seul processus dans l'onglet "Processus". Ce que je cherche, c'est pouvoir détecter les 2 "applis IE". Est-ce que ta solution répond à cette question? NB: Pour tous ceux qui lisent ce poste, attention quand vous utilisez cette clé de registre!! Risque de reboot automatique. Oui, je parle par expérience...  @+ Buno ---------------------------------------- L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
|
|
mercredi 14 janvier 2009 à 22:03:01 |
Re : Détection de lancement d'applications

racpp
|
Réponse acceptée !
Salut, Tu peux essayer les fonctions RegisterShellHookWindow(), RegisterWindowMessage() et DeregisterShellHookWindow(). Tu pourras récupérer le message de création de toute nouvelle fenêtre dans la procédure de ta fenêtre ou boite de dialogue qui pourrait être invisible. Exemple: case WM_INITDIALOG: //... RegisterShellHookWindow(hwnd); break; case WM_CLOSE: //... DeregisterShellHookWindow(hwnd); break; default: if(message==RegisterWindowMessage("SHELLHOOK")) { if(wParam==HSHELL_WINDOWCREATED) { GetWindowText((HWND)lParam,buffer,MAX_PATH); MessageBox(hwnd,buffer,"Fenêtre créée",0); } } break;
|
|
jeudi 15 janvier 2009 à 17:30:04 |
Re : Détection de lancement d'applications

buno
|
Salut, Je pense que j'ai pas dû bien comprendre le principe. Je te dis ce que j'ai compris, dis moi où je me trompe: Le code que tu me donnes en exemple est à mettre dans mon appli d'écoute. hwnd est le handle sur ma fenêtre RegisterShellHookWindow(hwnd) --> me permet d'inscrire ma fenêtre sur la notification de "certains" messages DeregisterShellWindow(hwnd) --> désabonne ma fenêtre if (message==RegisterWindowMessage("SHELLHOOK") --> si le message "est" SHELLHOOK
Voici maintenant ma question: - "certains" messages, "SHELLHOOK" --> il faut que la fenêtre créée envoie un message SHELLHOOK, non? Mais ça, je n'ai pas la main dessus
Je pense que j'ai zappé une étape. Peux-tu m'éclaircir un peu plus, s'il te plaît?
@+ Buno ---------------------------------------- L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
|
|
jeudi 15 janvier 2009 à 18:56:04 |
Re : Détection de lancement d'applications

racpp
|
Tu as bien compris. Pour répondre à ta question: la fenêtre qui vient d'être créée n'a rien à envoyer. C'est le Shell, disons le système qui s'en occupe. C'est lui qui envoie ce message à ta fenêtre en lui signalant la création, la réduction, la restauration etc d'une fenêtre. A rappeler que tu peux mettre le code dans un service qui interagit avec le bureau.
|
|
vendredi 16 janvier 2009 à 16:41:57 |
Re : Détection de lancement d'applications

buno
|
Ok merci, je pense avoir saisi le truc. Du coup, le code que tu m'a filé fait boucler le programme, non? Je lance mon prog --> OK Je lance IE --> hop! je catche la création de la fenêtre donc MessageBox MessageBox --> hop! je catche sa création également etc... Le principe du service me plait également... ça t'embêterait de développer un peu cette idée?  @+ Buno ---------------------------------------- L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
|
|
vendredi 16 janvier 2009 à 16:56:28 |
Re : Détection de lancement d'applications

buno
|
Au temps pour moi! Mauvaise bidouille de ma part: j'avais passé NULL au lieu de hwnd dans la MessageBox. Par contre, je suis toujours intéressé par l'explication du dev sur le service.
@+ Buno ---------------------------------------- L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
|
|
vendredi 16 janvier 2009 à 20:18:03 |
Re : Détection de lancement d'applications

racpp
|
Il y'a beaucoup d'exemples de services sur le site. Pour faire interagir un service avec le bureau, le 5ème paramètre de la fonction CreateService() doit être: SERVICE_WIN32_OWN_PROCESS | SERVICE_INTERACTIVE_PROCESS Au démarage du service, une boite de dialogue ou une fenêtre invisible sera créée. Sa procédure captera la notification comme mentionné dans le code plus haut.
|
|
vendredi 16 janvier 2009 à 21:44:35 |
Re : Détection de lancement d'applications

buno
|
Effectivement, j'ai eu le temps de trouver des exemples comme celui d' Arnotic ou encore celui de BruNews. Merci encore racpp de m'avoir aidé. Dès que j'ai terminé, je posterais ma source: ça pourra ptet aider d'autres personnes. @+ pour de nouvelles aventures!! Buno ---------------------------------------- L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
|
|
Cette discussion est classée dans : liste, applications, lancement, détection, ouvertes
Répondre à ce message
Sujets en rapport avec ce message
Détection de Windows par les applications MS-Dos [ par grandvizir ]
Bonjour, Dans les propriétés avancées des raccourcis PIF, il y a une case à cocher «Empêcher la détection de Windows par les applications MS-Dos».<FON
récupérer la liste des applications visibles dans la barre de tâches [ par dgueul ]
Bonjour, Je souhaite créer un gadget vista/seven ayant pour but de remplacer la barre "Démarrer". Là où je bloque, c'est au moment de récupérer la l
héritage & template [ par rolm ]
Bonjour, J'aurai besoin d'un peu avec des tempates. En fait je voudrais créer une class qui hérite d'une class template mais d'un type donné. par e
Récupérer les infos sur les services Windows [ par sen25000 ]
Bonjour. Comment afficher dans un fichier/tableau la liste des services Windows de façon à savoir quand ils ont démarré et quand ils se sont arrêtés.
Liste des PCs sur un réseaux [ par mohdaef ]
Bonjour à tous Cela fait un certain temps que je cherche comment je peux lister les ordinateurs se trouvant sur mon réseau. J'ai jeter un ½il aux fon
Crée une liste chainé dans une fonction [ par carton99 ]
Bonjour, j'ai un probleme sur les listes , je doit absolument régler ce probleme car je doit faire une fonction récursive. voila le code Population
Récupérer et modifier une liste [ par jnbrunet ]
Bonjour, Il y a une application faite en cpp donc j'aimerais récupérer les données à l'intérieur d'une liste de données (multi colonne). La liste est
les liste chainée [ par korimatsu ]
bonjour a tous je voulais vous demander de me donner un code source pour un programme qui représente un polynôme avec les liste chainée et calcule la
les liste chainée [ par korimatsu ]
bonjour a tous je voulé juste savoir une chose si j'écris mon maillon de cette façon typedef struct maillon {int v; struct maillon *suiv; }maillo
Livres en rapport
|
Derniers Blogs
[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril CERTIFICATIONS BETA .NET 4CERTIFICATIONS BETA .NET 4 par KooKiz
Les inscriptions pour les certifications beta .NET 4 ont commencé. L'inscription est offerte pour les examens suivants : - 71-511, TS: Windows Applications Development with Microsoft .NET Framework 4 - 71-515, TS: Web Applications Development with...
Cliquez pour lire la suite de l'article par KooKiz [MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2[MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2 par redo
J'imagine que la plupart d'entre vous connaissent bien et utilisent le service de traduction de Google, mais connaissez-vous celui de Microsoft . Microsoft Translator ? Effectivement, Microsoft nous annoncé le lancement version 2 de la Technologie Preview...
Cliquez pour lire la suite de l'article par redo LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010!LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010! par MPOWARE
Toutes les vidéos de ce lancement sont en ligne!
Partie I - Intro
http://www.youtube.com/watch?v=LkQzTQ8T6CA
Partie II - Démo 1
http://www.youtube.com/watch?v=drAhYQ7lqvo
Partie III - Démo 2
http://www.youtube.com/watch?v=c8KM_1Gqybc...
Cliquez pour lire la suite de l'article par MPOWARE [WP7] JE NE VEUX PAS D'UN NOUVEL IPHONE[WP7] JE NE VEUX PAS D'UN NOUVEL IPHONE par FREMYCOMPANY
Je pense qu'ils ont besoin d'une piqure de rappel chez Microsoft : c'est bien gentil d'avoir une interface jolie, mais si c'est pour avoir un truc qui ne convainct pas dedans, c'est peine perdue.
---->
Système ouvert ----> Fermé ?
P...
Cliquez pour lire la suite de l'article par FREMYCOMPANY
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
|