[R] Parent: Déterminer comment est appellé le prog

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
fred39
Niveau 4
Niveau 4
Messages : 64
Enregistré le : lun. 05 mai 2008 10:03
Status : Hors ligne

[R] Parent: Déterminer comment est appellé le prog

#1

Message par fred39 »

Bonjour,
Comment Déterminer la méthode d'appel d'un programme?
Je voudrais faire en sorte que si mon programme est appelé par double clic, ou un clic + "enter"; les logs de celui-ci s'affichent dans une msgbox.
Mais si il est appelé par un batch ou autre programme (script de login par exemple=), Consolewrite() alimenterait mon fichier de log.
exemple:
mon_programme.exe >>mon_log.txt.

Je ne sais pas comment déterminer celà. :?
$cmdline[0], ou $cmdlineraw ne renvoient rien dans les 2 cas.

Si quelqu'un a une solution.... :-)
ou une piste...:-)
Merci
Fred
Modifié en dernier par fred39 le mar. 09 juil. 2013 11:05, modifié 1 fois.
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [..] Parent: Déterminer comment est appellé le prog

#2

Message par TopXm »

Hello :)

Justement, tu pourrais passer un paramètre à ton programme lors d'un appel en batch, par exemple :

Code : Tout sélectionner

MonProg.exe /Batch
A ce moment là tu aurais

Code : Tout sélectionner

$CmdLine[0] = 1
$CmdLine[1] = '/Batch'
Et tu traites dans ton code selon le paramètre passé ;)
Avatar du membre
fred39
Niveau 4
Niveau 4
Messages : 64
Enregistré le : lun. 05 mai 2008 10:03
Status : Hors ligne

Re: [..] Parent: Déterminer comment est appellé le prog

#3

Message par fred39 »

Merci TopXm pour ta réponse. :)
J'avais bien pensé à ça,
Le hic, c'est que je ne suis pas forcément maitre du script appelant.

En fait, il faudrait plutôt que je puisse faire:

if mon_programme.exe est appelé par un double clic then
msgbox (.....)
Else
Consolewrite(....)
endif

:?
alex1205
Niveau 5
Niveau 5
Messages : 123
Enregistré le : dim. 07 mars 2010 13:59
Status : Hors ligne

Re: [..] Parent: Déterminer comment est appellé le prog

#4

Message par alex1205 »

J'ai fait un code a l'arrache :

Code : Tout sélectionner

#include <Array.au3>
If IsArray($CMDLine) And $CMDLine[0] > 1 Then
    ;CMD
    _ArrayDisplay($CMDLine)
Else
    ;Double Clic
    MsgBox(0, "AUTOIT3", "ouvert avec double clic")
EndIf

;par exemple, dans cmd, faire monprog.exe /silencieux /install
;ca va afficher (dans _ArrayDisplay)
;[0] 1
;[1] /silencieux
;[2] /install
 
Le "je ne sais pas" et "j'y arrive pas" n'existe dans mon vocabulaire. Toutes Questions ont une réponse, cherchez et vous la trouverai. Utilisez Recherche du forum et vous verrez. Si [blink]Aucune[/blink] question ne tient à votre problème, créez un sujet.
Avatar du membre
fred39
Niveau 4
Niveau 4
Messages : 64
Enregistré le : lun. 05 mai 2008 10:03
Status : Hors ligne

Re: [..] Parent: Déterminer comment est appellé le prog

#5

Message par fred39 »

Merci Alex 1205. :)
Le hic, c'est que les chevrons >> qui permettraient de loguer les retours de consolewrite dans un fichier de log laissent $cmdline[0] à 0.

Exemple: si j'appelle mon programme de la manière suivante:
mon_programme.exe >>mon_log.txt
dans ce cas $cmdline[0] reste à 0

Est-il possible de déterminer si le programme est exécuté suite à un double clic?
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Parent: Déterminer comment est appellé le prog

#6

Message par jchd »

Est-il possible de déterminer si le programme est exécuté suite à un double clic?
Pas facile ça, il faudrait être dalife à la place du calife.

Par contre, si le process parent est cmd.exe, alors l'appli a été lancée par un batch.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Parent: Déterminer comment est appellé le prog

#7

Message par jguinch »

Salut
Comme l'a dit jchd, c'est pas simple.
Ce qui est possible de faire facilement, c'est effectivement détecter le process parent, ce qui pourra t'aider à savoir si le prog a été lancé dans l'explorer, un script ou autre :
► Afficher le texte
Maintenant, pour savoir si le lancement a été effectué par double clic ou entrée, il faudrait un autre script qui surveille en permanence, mais là tu vas me dire que c'est pas possible...

Juste pour mieux comprendre, quel est le l'intérêt de faire cette différence ?
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
fred39
Niveau 4
Niveau 4
Messages : 64
Enregistré le : lun. 05 mai 2008 10:03
Status : Hors ligne

Re: [R] Parent: Déterminer comment est appellé le prog

#8

Message par fred39 »

Bonjour,
merci à Jchd, et Jguinch.
C'est juste ce qu'il me faut. :D
le parent process.
Pour répondre à ta question Jguinch,
l'intérêt de cette différence est:
On fait pas mal d'outils en autoit, pour installer des logiciels, ou diverses autres actions.
Ces outils loguent les erreurs ou autres infos.
Si un outil est lancé par une action de l'utilisateur: (parent explorer) j'utiliserai une message box.
Si l'outils est appelé lors d'un script de login, je log différemment, avec consolewrite par exemple.

Bonne journée.
:D
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [R] Parent: Déterminer comment est appellé le prog

#9

Message par jguinch »

content d'avoir pu t'aider voisin ! :D
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Répondre