Détecter le lancement d'une application

cs_snake57 Messages postés 204 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 1 novembre 2011 - 15 févr. 2007 à 01:48
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 16 févr. 2007 à 11:48
Bonjour,

Je voudrais savoir si il est possible de faire un programme qui tourne en tache de fond et qui détecte quand je lance une appli. Prenons msn par ex.

Il faudrait que lorsque je lance msn, mon prog effectue une action (genre écrire dans une message box "vous venez de lancer msn").

Donc voila mon pb consiste en la détection du lancement de l'application. Si qqn pourrait me renseigner la dessus se serait cool.

17 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
15 févr. 2007 à 08:47
Il te faut simplement un timer et une listbox (invisible) à laquelle tu ajoutes les applications ouvertes.

Dans te timer : une instruction qui, toutes les x millisecondes, va faire l'inventaire des applis en cours et :
- si nombre > le nombre présent dans ta liste : faire une boucle sur les applis ouvertes et sur ta listbox pour déceler celle qui vient d'être ajoutée ... l'ajouter à ta listbox et envoyer ton message.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
15 févr. 2007 à 09:20
Ceci étant, une chose mechagrine un peu ...
Celui qui lance une application sait bien ce qu'il lance, non ? (et n'a donc aucun besoin qu'on le lui fasse savoir)...

Quelle sera donc ta prochaine question ?
- comment inscrire tout celà dans un fichier discret ?
ou
- comment faire exécuter de façon silencieuse (à l'insu de l'utilisateur, donc) l'envoi d'un email ?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 févr. 2007 à 12:37
Aucun prob ce genre de question car il faut un setup pour tout prog interprété et donc aucune chance qu'il tourne jamais nulle part.

ciao...
BruNews, MVP VC++
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
15 févr. 2007 à 13:05
Bonjour Brunews,

Je sais bien...

Mais voilà :

http://www.vbfrance.com/infomsg_AUTOMATISER-INSTALLATION_850011.aspx

Il arrive que l'on veuille qu'un train en cache un autre ... (ou qu'on tente de le faire)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 févr. 2007 à 13:30
Encore aucun prob, toutes ces questions émanent de petits plaisantins qui n'ont pas compris ce qu'est un interprété et son champ d'application.
Un monitoring progs se fait par hook CBT, infaisable en interprété comme tout ce qui est prog system, idem pour ce qui est d'automatiser un prog externe.

ciao...
BruNews, MVP VC++
0
cs_snake57 Messages postés 204 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 1 novembre 2011
15 févr. 2007 à 13:38
Oui alors je vous doit quelques précisions. Le but n'est pas du tout de lister les appli d'un ordi autre que le miens.

Le programme tournera bien sur mon propre ordi.

Et il va me servire a lancer simultanément plusieurs appli.

Par ex si je lance msn alors le prog le remarque et il si jamais je suis pas connecter au net il va le faire.

Ou bien encore, si je lance emule Il vérifie que mon disque externe soit connecté et si il le trouve pas il me le dit.

Voila c'est pour faire des petites choses de ce genre la.

jmfmarques tu parles d'une instruction dans un timer qui, toutes les x millisecondes, va faire l'inventaire des applis en cours. Peut tu me donner plus d'infos la dessus. c'est justement cela qui me bloque.
0
vicosta Messages postés 178 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 30 novembre 2011
15 févr. 2007 à 13:43
je pense que notre ami snake57 veut connaître le nom des programmes qui se lancent, y compris ceux de derrière plan.

j'ai fait précisement un programme dans le genre, cela me permettait de stopper, sur demande, les processus que je n'avais pas accepté auparavant. C'était hautement pratique quand j'avais le SP1, puisque des programmes inconnus riscaient de se créer/lancer en navigant sur internet
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 févr. 2007 à 13:47
C'est un vrai bouffe cpu cette histoire, ok pas d'autre moyen en vb mais en ce cas va plutot apprendre le C au lieu de perdre ton temps avec des trucs nuisibles de ce genre.
Un hook tourne sans timer, sans listbox, sans... RIEN d'autre qu'un event qui te sera transmis par le systeme. Le temps passé à cette inutilité sera autant que tu pourrais passer à apprendre la prog, je ne comprends pas qu'on puisse passer à coté d'une telle évidence.

ciao...
BruNews, MVP VC++
0
vicosta Messages postés 178 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 30 novembre 2011
15 févr. 2007 à 13:50
dsl
posté em même temps
0
cs_snake57 Messages postés 204 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 1 novembre 2011
15 févr. 2007 à 13:58
Je connais le C Brunews mais vraiment la base. Si ce que tu propose de faire est abordable par un debutant je suis preneur d'un ou deux liens qui pourrais m'aider.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 févr. 2007 à 14:07
HOOK SYSTEM SUR WM_MOUSEWHEEL (WIN32)
http://www.cppfrance.com/code.aspx?ID=25998
DLL HOOK EN RESSOURCE BINAIRE DU PROG (WIN32)
http://www.cppfrance.com/code.aspx?id=25450
HOOK F11 SUR IE (WIN32)
http://www.cppfrance.com/code.aspx?id=18202
HOOK CLAVIER
http://www.cppfrance.com/code.aspx?id=17818
LIMITE LE NBR DE FENETRES IE V2 (WIN32)
http://www.cppfrance.com/code.aspx?id=17387
LIMITE LE NBR DE FENETRES INTERNET EXPLORER (WIN32)
http://www.cppfrance.com/code.aspx?id=11059
NO TASK MANAGER (WIN32)
http://www.cppfrance.com/code.aspx?id=11186
HOOK DE ENTER SUR DIALOGBOX (WIN32)
http://www.cppfrance.com/code.aspx?id=11007
HOOK SUR FENETRE (WIN32)
http://www.cppfrance.com/code.aspx?id=10997
AJOUTER UN MENU A NOTEPAD (WIN32)
http://www.cppfrance.com/code.aspx?ID=28181

Voici qlqs liens mais je me doute que tu ne pourras pas suivre, le C doit être parfaitement maitrisé pour en obtenir qlq résultat intéressant, impossible d'y aller par tatonnement comme en VB ou autre. Il ne faut pas craindre d'y investir temps et efforts, c'est à ce prix qu'on obtient la liberté de produire TOUT ce que l'on veut.

ciao...
BruNews, MVP VC++
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
15 févr. 2007 à 18:49
Salut,


Certe, le C est rapide et permet plus de contrôle, mais il est plus compliqué quand on débute.


Sous VB6, tu peux facilement lister les processus en cours d'execution
avec les fonctions que tu utiliserais aussi en C pour faire de même.
(Certe aussi, un hook serait nettement plus intéressant côté
consommation CPU).


Vala un exemple de code ou on cherche un nom de processus parmis ceux qui tournent :


http://www.vbfrance.com/codes/SAVOIR-SI-PROGRAMME-EST-LANCE_5106.aspx
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 févr. 2007 à 19:08
Mais c'est justement là le point fondamental, il n'y a rien à lister. On est informé par le simple fait qu'une instance de la dll hook est mappée dans le processus démarrant et cela de manière automatique sans timer ni quoi que ce soit.
Il n'est pas question de savoir si le C est plus rapide puisque c'est une évidence, il est par contre opportun d'indiquer que c'est LE langage de la prog system (comme de tout vrai prog d'ailleurs).

ciao...
BruNews, MVP VC++
0
vicosta Messages postés 178 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 30 novembre 2011
15 févr. 2007 à 19:44
on a par la quelques petits programmes en VB qui utilisent aussi les hooks et qui marchent aussi vite que ceux de C++   pour les events système.

Je ne connais pas beaucoup le langage C, mais je crois que ça se passe aussi par les les API comme CallWindowProc

Mais c'est vrai, le C permet de faire beaucoup plus vite et mieux que le vb, notament des jeux et dans le traitement de variables

 
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 févr. 2007 à 19:54
NON, hors souris et claviers que Windows palce en "shared resource", il est absolument impossible de faire un hook systeme en langage interprété quel qu'il soit pour la simple raison qu'ils ne peuvent produire de DLL.

ciao...
BruNews, MVP VC++
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
16 févr. 2007 à 11:31
Seulement voilà, le VB6 est pas forcément interprété. la version pro
permet certe de compiler vers du code intermédiare, mais aussi vers du
langage machine tout ce qu'il y a de plus compatible IA32. Seul souci,
le compilo est franchement mauvais, et on se fait souvent très peur
quand on désassemble un exe VB6...


On peut faire une dll classique via ce add-in qui permet aussi très accéssoirement de mettre de l'assembleur et du C au beau milieu du code VB6.


Sachant qu'en plus VB dispose des instructions address of qui permet de
récupérer l'adresse d'une routine (Qui sont en stdcall, donc ok pour
servir de call back pour le Win32), et de de tout ce qu'il faut pour
récupérer l'adresse d'une variable  (VarPtr, ...)

http://support.microsoft.com/kb/199824/fr#
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 févr. 2007 à 11:48
Ce genre de bidule add-in est totalement déconseillé et à proscrire, il ne fera que donner l'illusion (pour preuve ton post) qu'on produit du natif alors qu'il n'en est absolument rien.
La seule chose que le compilo produit de natif dans un binaire c'est les boucles numériques, hors cela TOUT est transcrit en un "call vbMethodexxx" vers la virtual machine.
Imagine le system devant mapper une copie de virtual machine dans chaque processus en cas de hook system, à exclure.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous