[R] Exécuter un script en lui injectant des infos

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Proinfo
Niveau 2
Niveau 2
Messages : 17
Enregistré le : mar. 21 août 2012 14:43
Status : Hors ligne

[R] Exécuter un script en lui injectant des infos

#1

Message par Proinfo »

Bien le bonjour,
Je cherche une méthode pour transmettre des informations à un script une fois compiler.

Je m'explique :
Admettons qu'un script php est besoin de transmettre des données à un script autoit du style login, mdp...

Quelles solutions existent ?
- Puis-je utiliser un système de ce genre : c:/monscriptautoit.exe -login -mdp ?
- Dois-je définir une fonction contenant ces informations et la préciser (la sécurité n'est pas très importante me concernant) de ce genre : c:/monscriptautoit.exe -function1 ?
- Y'a-t-il un autre moyen ?

Je dois avouer que je ne sais pas trop comment résumer ceci en mot clé pour une éventuelle recherche, d'où mon post sur ce forum et les faibles recherches que j'ai effectuées auparavant.

merci à vous

PS : le script autoit sera composé d'un exec tout à fait basic me permettant de lancer un autre script php en y réinjectant les données*. Pour faire simple :

Script maitre PHP => 'exec -arg' => Script autoit => 'exec -arg' => Script esclave PHP

*Si j'exécute un fichier php avec une commande du genre : php.exe scriptesclave.php $login $mdp, mon script php saura fonctionner avec les données login, mdp. (C'est ce que je cherche à reproduire avec un script autoit)

Pourquoi passer par un script autoit ?
Pour masquer la console de Script esclave PHP et lancer celui-ci dans un autre processus (multiprocessing).

Voilà tout. merci

PS2 : je préfèrerais évidemment une solution du style :
- Puis-je utiliser un système de ce genre : c:/monscriptautoit.exe -login -mdp ?
cela me permettrait de faire quelque chose de ce genre : c:/monscriptautoit.exe $path-php-esclave -$arg1 -arg2 et ainsi lancer n'importe quel script php dans un autre process sans avoir à tout définir dans une fonction style :
- Dois-je définir une fonction contenant ces informations et la préciser [...] c:/monscriptautoit.exe -function1
donc : c:/monscriptautoit.exe -scriptesclave1, c:/monscriptautoit.exe -scriptesclave2...
Modifié en dernier par Proinfo le sam. 09 août 2014 18:33, modifié 1 fois.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Exécuter un script en lui injectant des infos

#2

Message par orax »

De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Exécuter un script en lui injectant des infos

#3

Message par PandiPanda »

Bonjour,
ceci? (la partie "Paramètres des lignes de commandes")

exemple;
► Afficher le texte
il faut compiler le script ^^
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Proinfo
Niveau 2
Niveau 2
Messages : 17
Enregistré le : mar. 21 août 2012 14:43
Status : Hors ligne

Re: [..] Exécuter un script en lui injectant des infos

#4

Message par Proinfo »

excellent, cela devrait faire l'affaire.
merci beaucoup
(je valide une fois testé)
Proinfo
Niveau 2
Niveau 2
Messages : 17
Enregistré le : mar. 21 août 2012 14:43
Status : Hors ligne

Re: [..] Exécuter un script en lui injectant des infos

#5

Message par Proinfo »

Voici le code pour les éventuels intéressés, je l'ai testé rapidement, mais il ne devrait pas y avoir de problème

Code : Tout sélectionner

#NoTrayIcon
Local $php_path = 'C:\php-5.5.14x64\'
If $cmdLine[0] == 1 Then
    exec($cmdLine[1])
ElseIf $cmdLine[0] > 1 Then
    For $arg In $cmdLine
        If ($cmdLine[0] == $arg) or ($cmdLine[1] == $arg) Then
            $args = ''
        Else
            $args = $args & $arg & ' '
        EndIf
    Next
    exec($cmdLine[1], $args)
;~  MsgBox(0, $cmdLine[1], $args)
EndIf

Func exec($path_file, $args = '')
    ShellExecute('"'&$php_path&'php.exe"', '"'&$path_file&'" '&$args, @ScriptDir, "", @SW_HIDE)
;~  ShellExecute('"'&$php_path&'php.exe"', '"'&$path_file&'" '&$args, @ScriptDir, "")
EndFunc
merci pour votre aide
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [R] Exécuter un script en lui injectant des infos

#6

Message par PandiPanda »

Bonsoir,
Pour ce que vous faites de la variable $cmdline[x], vous auriez pu utiliser aussi ceci :

Code : Tout sélectionner

If $cmdLineraw <> "" Then MsgBox(0,"",$cmdLineraw)
$cmdlineraw contient tout les argument en "chaine de caractère", c'est ce que vous voulez obtenir au final ^^

Pour plus d'information, ça se trouve ici
En plus de la variable $CmdLine, il existe une variable nommée $CmdLineRaw qui contient la ligne de commande dans son intégralité, sans découpage ou autre traitement, ce qui dans l'exemple précédent donne :

$CmdLineRaw Contiendra... monscript.au3 param1 "ceci est un autre paramètre"
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Proinfo
Niveau 2
Niveau 2
Messages : 17
Enregistré le : mar. 21 août 2012 14:43
Status : Hors ligne

Re: [R] Exécuter un script en lui injectant des infos

#7

Message par Proinfo »

C'est pas faux, sauf que je dissocie le 1ère argument.
Enfin l'essentiel c'est que ça fonctionne, merci pour cette autre proposition :)
Répondre