Lancement programme? [Résolu]

Signaler
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
-
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
-
Bonjour,

Un programme peut-il savoir s'il a été lancé de manière automatique via une clé du registre?
ou s'il a été lancée suite à une action "humaine" (double-clique sur l'executable ou son raccourcis...)?
ou lancée via OUVRIR AVEC?

Si oui ,comment?

Merci d'avance et à bientôt...


<hr />


Nico

4 réponses

Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
Salut,


param ligne de commande <=> argument passé au programme (argv,
argc du main ou le lpCmdLine du WinMain ou encore la chaîne renvoyée
par GetCommandLine). Tu peux par exemple mettre un argument dans la
valeur de ta base de registre qui lance l'exe. Tu vérifies ensuite la
présence de cette argument au lancement de ton prog.


Tu peux essayer de récupérer l'ID du processus parent (Je sais pas s'il y a mieux, mais un méthode est décrite ici. Fait une recherche de InheritedFromUniquePorcessId sur cette page.).


Les processus créés par l'utilisateur ou dans la base via la base de
registre n'auront pas le même parent. Process Explorer (Gratuit) de
SysInternals montre cette arborescence, comme sur ce screenshot.

<hr size="2" width="100%" />3ème année en ecole d'ingé d'info cherche stage de 4 mois à partir du 01/04/08
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Le plus simple c'est d'ajouter un param ligne de commande dans les cas qui t'intéressent.

ciao...
BruNews, MVP VC++
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
3
Qu'appellez-vous un param ligne de commande, y aurait-il des exemples sur le site cppfrance ou un autre?
Merci d'avance...
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
3
Merci pour ces indications.
Comme vous le disait rt15 il faut regarder lpCmdLine du WinMain.

Pour le registre:
si vous mettez la valeur suivante:
"c:\chemin\nom_de_exe.exe" /monexe
dans HKCU\Software\Microsoft\Windows\CurrentVersion\Run,
Le lpCmdLine de l'exe spécifié entre crochets aura pour valeur: "/monexe" lors du démarrage du programme (en même temps que celui de windows)

A bientôt et merci pour toutes ces indications...