[R] Subinacl et StdOutRead

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

[R] Subinacl et StdOutRead

#1

Message par matwachich »

Salut la companie!

SVP, es-que quelqu'un pourrait me dire ce que je fait mal ici:

Code : Tout sélectionner

#include <Constants.au3>

FileInstall("C:\Program Files\_Mes Programmes\Logiciels\AutoIt3\Include\Perso\subinacl\subinacl.exe", @TempDir & "\subinacl.exe", 1)

Func _subInAcl($cmd)
    Local $pid = Run(@TempDir & "\subinacl.exe " & $cmd, @TempDir, @SW_HIDE, $STDERR_CHILD + $STDIN_CHILD + $STDOUT_CHILD)
    Local $ret = "", $line
    While 1
        $line = StdoutRead($pid)
        If $line <> "" Then $ret &= $line & @CRLF
        If @error Then ExitLoop
    WEnd
    Return $ret
EndFunc

$r = _subinacl("/?")

ConsoleWrite($r & @CRLF)
Rien ne s'affiche alors que le paramètre /? passé a subinacl.exe devrai afficher un vrai bouquin!?
Modifié en dernier par matwachich le sam. 02 oct. 2010 20:17, modifié 1 fois.
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Subinacl et StdOutRead

#2

Message par sylvanie »

A tout hasard, est ce que le Fileinstall s'est bien effectué ?
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [..] Subinacl et StdOutRead

#3

Message par sksbir »

bonjour

si tu lances subinacl dans une fenêtre de commande, tu verras que le texte d'aide est formaté, avec certains caractères qui apparaissent en gras.

Il fallait donc analyser le contenu de la réponse de subinacl.
$TEST=StringToASCIIArray($r)
_ArrayDisplay($TEST)

ce qui permet de constater la présence d'un chr(0) entre chaque caractère émis.

il faut rajouter l'instruction

$r=StringReplace($r,chr(0),"")

avant d'afficher dans la console.

Ceci dit, avant de te lancer dans une usine à gaz avec subinacl, je te conseille de tester plutôt setacl.
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [..] Subinacl et StdOutRead

#4

Message par matwachich »

Merci! c'était la bonne solution!

Code : Tout sélectionner

#include <Constants.au3>

FileInstall("C:\Program Files\_Mes Programmes\Logiciels\AutoIt3\Include\Perso\subinacl\subinacl.exe", @TempDir & "\subinacl.exe", 1)

Func _subInAcl($cmd)
    Local $pid = Run(@TempDir & "\subinacl.exe " & $cmd, @TempDir, @SW_HIDE, $STDERR_CHILD + $STDIN_CHILD + $STDOUT_CHILD)
    Local $ret = "", $line
    While 1
        $line = StdoutRead($pid)
        If $line <> "" Then $ret &= $line & @CRLF
        If @error Then ExitLoop
    WEnd
    Return StringReplace($ret, chr(0), "")
EndFunc

$r = _subinacl("/?")

ConsoleWrite($r & @CRLF)
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Subinacl et StdOutRead

#5

Message par sylvanie »

bravo, pensez alors à passer le sujet en [R]
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Répondre