[..] Executer une commande invisiblement dans une console

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
xavierha
Niveau 3
Niveau 3
Messages : 31
Enregistré le : mer. 21 sept. 2011 23:08
Localisation : Atlanta, GA
Status : Hors ligne

[..] Executer une commande invisiblement dans une console

#1

Message par xavierha »

J'aimerais ajouter des fonctionalites d'Unix a la commande DOS "cd" avec AutoIT.
C'est facile de gerer un historique de commandes et de compiler pour la console, mais la partie moins facile est d'envoyer a la console des commandes pour changer de repertoire sans que ce soit visible pour l'utilisateur. La seule methode qui aie marche pour moi est de me servir de "send('cd MonSousRepertoire')". Je prefererais une methode moins visible. Quelqu'un aurait il des idees?

Merci :D,

Xavier
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Executer une commande invisiblement dans une consol

#2

Message par TommyDDR »

Regardez les Flags en option dans la fonction "Run" (STDIN_CHILD)
Utilisez ensuite du coté de la fonction "StdinWrite"

Je vous laisse vous documenter à ces sujets grâce à la touche F1 ;)
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
xavierha
Niveau 3
Niveau 3
Messages : 31
Enregistré le : mer. 21 sept. 2011 23:08
Localisation : Atlanta, GA
Status : Hors ligne

Re: [..] Executer une commande invisiblement dans une consol

#3

Message par xavierha »

Merci Tommy des suggestions.
C'est ma faute, ce que j'ai dit n'etait pas assez clair. Et aussi je n'ai peut etre pas compris ce que tu essayais de dire. Donc, voici mon essai a la clarte:

D'abord, ce que j'essaie de faire:
Dans une console Windows, la commande "cd" me permet de changer de repertoire. Mais "cd" n'a pas de memoire des commandes passees, et n'a pas non plus la commande "cd -" qui sous Unix permet de retourner au repertoire precedent.
Je voudrais ajouter ces possibilites en me servant d'autoIt. Disons que j'ai un script, "gd.exe", compile pour la console. Quand je l'appelle depuis la console avec un chemin (par exemple "gd c:\autoit", le chemin est ajoute a un tableau, et le chemin present de la console devient "c:\autoit". C'est la que j'ai un probleme. J'ai besoin d'un moyen de changer le chemin actuel a l'interieur de la console derriere la scene, sans taper pour l'utilisateur "cd C:\autoit".

Pourquoi je ne vois pas une solution dans ce que je crois que tu as dit:
1- Si je me sers de "run" pour executer une commande, il n'y a pas de fichier de commande "cd.exe", et gd.exe est l'enfant de la console, pas le parent ($STDIN_CHILD).
Je pourrais demarrer cmd.exe avec des parametres comme "/c cd c:\autoit" pour faire le changement de repertoire, mais le changement ne serait que dans la nouvelle console, pas dans la console d'origine. Ce n'est donc pas une solution.
2- se servir de stdinwrite pour executer la commande "cd c:\autoit" pourrait marcher, mais malheureusement, cette commande ecrirait les caracteres de la chaine "cd c:\autoit" sur la fenetre de la console, ce qui serait en conflit avec "invisiblement" dans le titre.
Répondre