Accueil > Forum > > > > Détecter le lancement d'une application externe
Détecter le lancement d'une application externe
dimanche 2 mars 2008 à 21:11:37 |
Détecter le lancement d'une application externe

PHIL63
|
Bonsoir à toutes et à tous, Voila ma petite question : Existe-t-il une fonction dans une API de windows ou une autre méthode pour détecter non pas si une application est déjà lancée depuis 5 minutes par exemple mais pour détecter le lancement de cette application. Je pourrais lancer un timer avec dans le OnTimer une recherche du handle de la fenêtre de cette application mais le temps de détecter le lancement ce sera déjà trop tard. Le but, copier 3 petits fichiers juste au démarrage d'une application externe précise..... mais ce n'est pas mon prog qui lance cette application... sinon ce serait bien plus simple.  Donc si quelqu'un à une petite solution  ... Bonne soirée. Philippe DROUET
|
|
dimanche 2 mars 2008 à 22:25:35 |
Re : Détecter le lancement d'une application externe

cantador
|
Quel est l'évènement qui déclenche le démarrage de cette application ? cantador 
|
|
dimanche 2 mars 2008 à 22:41:55 |
Re : Détecter le lancement d'une application externe

PHIL63
|
Bonsoir et merci de t'intéresser à ma question.
Plus de précisions : Un logiciel lance cette application lorsque l'utilisateur clique sur un bouton "Go". Une autre solution aurait pu être de surveiller le clic sur ce bouton mais il fait partie d'un programme externe et là je ne sais pas faire non plus..... Si je pouvais détecter l'apparition de cette application dans la liste des processus dès son apparition, ça pourrait être bon.. merci encore.
Philippe DROUET
|
|
dimanche 2 mars 2008 à 23:07:06 |
Re : Détecter le lancement d'une application externe
|
lundi 3 mars 2008 à 07:15:07 |
Re : Détecter le lancement d'une application externe

PHIL63
|
Merci en tout cas, même si tu ne trouves rien.  Philippe DROUET
|
|
lundi 3 mars 2008 à 09:36:21 |
Re : Détecter le lancement d'une application externe

PHIL63
|
J'ai quand même un avantage, je sais que la lecture de ces trois petits fichiers par la deuxième application n'a pas lieu avant 2 ou 3 secondes (c'est énorme  ) après le lancement de celle-ci car elle a beaucoup de choses à charger.... Je sais, ces 2 ou 3 secondes varient en fonction de la machine sur laquelle est lancée l'application et que ce n'est pas une mesure fiable... mais j'ai rien d'autre  De plus je ne peux pas me permettre de faire faire tourner un timer en testant toutes les 100ms un lancement éventuel de cette application ... ce ne serait pas raisonnable en terme d'occupation de ressources ... Philippe DROUET
|
|
lundi 3 mars 2008 à 14:20:39 |
Re : Détecter le lancement d'une application externe

Caribensila
|
Salut,
Si les 3 petits fichiers sont présents avant le lancement de l'application externe, il y a peut-être une solution avec un sémaphore. Une subtile propriété des sémaphores est qu'ils n'appartiennent jamais réellement à un process en particulier et qu'ils permettent de contrôler, par exemple, l'accès à des fichiers.
Lorsque l'application externe sera lancée, elle échouera donc. Là, il faudrait faire des essais pour voir si elle sera terminée ou simplement gelée. Ensuite voir si ton application peut libérer le sémaphore à un moment choisi par elle et... ... ... Mais là commence l'aventure! Veinard, va ! 
Demain, je dois m'absenter pour quelques semaines et je ne pourrais donc hélas pas participer. 
Il faut faire une recherche sur les sémaphores sur Google.
|
|
lundi 3 mars 2008 à 15:11:33 |
Re : Détecter le lancement d'une application externe

BruNews
|
Il "suffit" de hooker ZwCreateProcess pour savoir qui est sur le point de se lancer.
ciao... BruNews, MVP VC++
|
|
lundi 3 mars 2008 à 15:28:41 |
Re : Détecter le lancement d'une application externe

PHIL63
|
@ Caribensila
j'ai fait une petite recherche sur les semaphores, et je dois dire que j'ai pas tout compris  @ BruNews Je vais faire une recherche sur "ZwCreateProcess" ensuite je regarderais comment "hooker ZwCreateProcess"  Je suis pas arrivé mais au moins j'ai une piste et je t'en remercie.  Philippe DROUET
|
|
mercredi 5 mars 2008 à 19:32:33 |
Re : Détecter le lancement d'une application externe

florenth
|
Réponse acceptée !
Ouais, sinon, comme solution "bidouillée" tu peux tout simplement:
- Renommer l'application dont tu veux détecter le lancement
- Créer une toute petite application toi même qui aurait le même nom que celle que tu veux détecter et dont le code se résumerait à :
1. Copier les fichiers qui t'intéressent
2. Lancer effectivement l'application (en transmettant les paramètres, le tout via CreateProcess, voire même ShellExecute si t'as pas besoin de fioriture inutile)
3. Notifier TON application (en recherchant sa fenêtre et via PostMessage)
Ok c'est un peu de la bidouille mais bon, hooker ZwCreateProcess n'est peut être pas la méthode la plus simple...
|
|
Cette discussion est classée dans : application, détecter, lancement, déj, externe
Répondre à ce message
Livres en rapport
|
Derniers Blogs
COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ?MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ? par junarnoalg
La prochaine session de MyTIC aura lieu à Namur, le 23 mars prochain. Pendant presque une heure, nous parlerons de SharePoint 2010. Voici un aperçu du programme.
Accueil : 17h30 Début de la session : 18h00 - Les nouvelles int...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System 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
|