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
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Forum
ALGORITHMESALGORITHMES par whayoub
Cliquez pour lire la suite par whayoub
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|