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 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.