Lancement programme?

Résolu
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 - 12 nov. 2007 à 19:20
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 - 13 nov. 2007 à 21:01
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

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
13 nov. 2007 à 13:10
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
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
12 nov. 2007 à 20:09
Le plus simple c'est d'ajouter un param ligne de commande dans les cas qui t'intéressent.

ciao...
BruNews, MVP VC++
0
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
12 nov. 2007 à 21:11
Qu'appellez-vous un param ligne de commande, y aurait-il des exemples sur le site cppfrance ou un autre?
Merci d'avance...
0
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
13 nov. 2007 à 21:01
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...
0
Rejoignez-nous