Page 1 sur 1

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

Posté : sam. 09 août 2014 12:58
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...

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

Posté : sam. 09 août 2014 13:10
par orax

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

Posté : sam. 09 août 2014 13:15
par PandiPanda
Bonjour,
ceci? (la partie "Paramètres des lignes de commandes")

exemple;
► Afficher le texte
il faut compiler le script ^^

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

Posté : sam. 09 août 2014 13:24
par Proinfo
excellent, cela devrait faire l'affaire.
merci beaucoup
(je valide une fois testé)

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

Posté : sam. 09 août 2014 18:32
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

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

Posté : sam. 09 août 2014 23:04
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"

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

Posté : sam. 09 août 2014 23:09
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 :)