begin process at 2010 03 20 03:21:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Système

 > 

Exécution

 > 

Détecter le lancement d'une application externe


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Détecter le lancement d'une application externe

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

PHIL63

Membre Club
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

Membre Club
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

Membre Club
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

cantador

Membre Club

De rien, mais je trouve ta question intéressante et utile...
C'est clair si tu n'as pas le source de l'application, tu ne peux rien faire à partir de celle-ci..
La difficulté n'est pas de détecter, si elle est ouverte (il y a des exemples sur le forum à ce sujet) mais de savoir quand elle s'ouvre..
Le processus oui mais je pense que çà sera encore trop tard..
je vais chercher à moins que quelqu'un ne trouve une solution.
 
cantador

lundi 3 mars 2008 à 07:15:07 | Re : Détecter le lancement d'une application externe

PHIL63

Membre Club
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

Membre Club
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

Membre Club
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

Administrateur CodeS-SourceS
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

Membre Club
@ 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

Membre Club
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...

1 2

Cette discussion est classée dans : application, détecter, lancement, déj, externe


Répondre à ce message

Sujets en rapport avec ce message

Problème au lancement d'une application externe [ par John Dogget ] Salut à tous. Je souhaiterais lancer le bloc-note windows pour editer un fichier depuis mon application, mais je n'y arrive pas ... Voici ce que j'a Envoyer un string ou message à un exe déjà en opération. [ par Lustmord ] Je sais déjà comment envoyer un Windows Message à une application. Cependant, j'aimerais savoir comment nous pouvons envoyer un message du genre "stri Comment fermer une application externe [ par Francky23012301 ] Salut à tous. Bon on ouvre WORD avec shellexecute. Mais comment fermer cette application ????? Merci Pour ceux qui ont déjà installé du Sql integré? [ par leader2000 ] Salut! J'ai remercie sincèrement tous ceux qui ont contribué à mon évolution sur le developement DELPHI.J'ai dû utlisé le InnoSetup...il est impécca Comment m'assurer au lancement de mon appli qu'elle ne tourne pas déjà? [ par H60 ] BonjourJ'aimerai savoir quel code faire pour m'assurer qu'à son lancement mon appli ne tourne pas déjà. Cette question à du être posée plus de cent fo comment charger les items d'une syslistview d'une application externe ? [ par ramanovitch ] Bonjour a tous , je souhaite savoire comment charger le contenu d'un syslistview d'une application externe dans une liste de mon application "delph Fermer une application externe [ par craftsystem ] salut a tous j'aurai voulus savoir comment fermer une application externeIf FindWindow('TIdaWindow',nil)0 Then Application.Terminate;//ferme mon appli coller dans une application externe [ par Maniaxman ] salutcomment faire avec delphi pour coller un texte dans une application externe ??merci Fermeture d'une application par un programme externe [ par f6dqm1 ] Bonjour à TousJ'ai un problème sur la fermeture d'une application par une application externe :J'utilise FindWindow pour récupérer le Handle de mon ap Démarrage d'une musique au lancement d'une application [ par emirej ] Voila enfaite j'ai crée une application et j'aimerais mettre cette musique ( ATC-All Around The World.mp3) dans mon application mais je ne trouve pas


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,780 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales