Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/08/2013, à 16:51

DouJoK

Communication entre terminal et une application

Bonjour,

Je cherche a envoyer via le terminal un message à une application qui me demande de remplir un champ.
Au lieu de remplir le champ directement en cliquant sur le champ de l'application je souhaite le faire via mon terminal.

J'ai tenté:

echo Coucou > App.exe

Précision, l'application est un exécutable qui tourne sous Windows normalement, mais je l'ai installé sur Ubuntu avec Wine qui me permet de faire tourner sous Linux des appli destinées à fonction sous Windows (L'appli fonctionne très bien sous Ubuntu).

Merci pour vos réponses.

Hors ligne

#2 Le 21/08/2013, à 17:05

Hoper

Re : Communication entre terminal et une application

Mouahhahaahaaa smile Merci pour ce vrai moment de détente smile
Le prend surtout pas mal hein ! C'est un vrai remerciement parce que j'ai vraiment rigolé smile

Pour en revenir au sujet...

"envoyer" quelque chose "vers" un programme ce n'est pas magique. cela fonctionne, sous unix avec ce que l'on appel des canaux. C'est aussi ce qui rend le shell extremement puissant, puisque cela permet de combiner des commandes à l'infini. (avec des pipes par exemple ou autre)

Sous windows, la situation est très différente. Restons en ligne de commande, avec des programmes prévus pour etre lancés en mode dos. J'ignore totalement ce qu'il en est actuellement, mais "de mon temps", les shells microsoft étaient totalement incapable de faire ce genre de chose. Le principe même des canaux n'existaient pas.

Meme si Microsoft avait progressé de ce point de vue la (ils ont sorti de nouveaux type de shell, powershell etc, donc qui sait...), il faut encore que la commande, le programme en question, soit prévu pour accepter des entrées venants de ces canaux. Ce qui ne sera clairement pas le cas d'un logiciel graphique, prévu pour être utilisé avec une souris.

Bienvenu dans le monde merveilleux du clic-clic, ou rien n'est scriptable, parce que c'est tellement plus simple d'utiliser une souris qu'un clavier...


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org

Hors ligne

#3 Le 21/08/2013, à 18:05

serged

Re : Communication entre terminal et une application

Hoper a écrit :

"envoyer" quelque chose "vers" un programme ce n'est pas magique. cela fonctionne, sous unix avec ce que l'on appel des canaux. C'est aussi ce qui rend le shell extremement puissant, puisque cela permet de combiner des commandes à l'infini. (avec des pipes par exemple ou autre)

Sous windows, la situation est très différente. Restons en ligne de commande, avec des programmes prévus pour etre lancés en mode dos. J'ignore totalement ce qu'il en est actuellement, mais "de mon temps", les shells microsoft étaient totalement incapable de faire ce genre de chose. Le principe même des canaux n'existaient pas.

Ne soyons pas méchant : Microsoft a implanté le truc!

Même sous DOS :

C:\>echo Coucou | applidos

Fonctionne, si applidos lit sur stdin.
... À la différence près, que, même avec cmd.exe (le shell de base Windows) ce n'est pas un vrai "tuyau" mais un fichier temporaire qui est utilisé.


LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

#4 Le 21/08/2013, à 19:30

Hoper

Re : Communication entre terminal et une application

... À la différence près, que, même avec cmd.exe (le shell de base Windows) ce n'est pas un vrai "tuyau" mais un fichier temporaire qui est utilisé.

Autrement dit j'ai raison quoi tongue On est loin des vrais canaux, avec les trois classiques : entrée, sortie standard et erreur (sans compter ceux que tu peux créer en plus etc).
Mais merci pour la précision, j'ignorai qu'ils avaient essayer de (très mal) simuler ce genre de chose.

Dernière modification par Hoper (Le 21/08/2013, à 19:31)


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org

Hors ligne

#5 Le 22/08/2013, à 07:16

serged

Re : Communication entre terminal et une application

Ça existe sous DOS / Windows stdin, stdout, stderr....


LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

#6 Le 22/08/2013, à 08:57

Hoper

Re : Communication entre terminal et une application

depuis quelle version ? si c'est vieux ca voudrait dire que... le concept existe mais jamais un developeur n'a essayé d'en tirer parti ? parce que moi le stdout d'une cmd envoyee vers le stdin d'une autre sous dos, en pratique je l'ai jamais vu de ma vie.


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org

Hors ligne

#7 Le 22/08/2013, à 13:44

serged

Re : Communication entre terminal et une application

Hoper a écrit :

depuis quelle version ? si c'est vieux ca voudrait dire que... le concept existe mais jamais un developeur n'a essayé d'en tirer parti ? parce que moi le stdout d'une cmd envoyee vers le stdin d'une autre sous dos, en pratique je l'ai jamais vu de ma vie.

Pourtant ça devrait marcher :
http://support.microsoft.com/kb/110930/fr :

Mickeysoft a écrit :

La commande « dir file.xxx » (où file.xxx n'existe pas) affiche la sortie suivante :
Le volume dans le lecteur F est la que canne à sucre d'orge numéro de série du Volume est 34EC-0876

Fichier non trouvé
Si vous redirigez la sortie vers le périphérique NUL à l'aide de « dir file.xxx > nul ", vous verrez toujours le message d'erreur :

Fichier non trouvé

Pour rediriger le message d'erreur au port NUL, utilisez la commande suivante :

 dir file.xxx 2> nul

Ou bien, vous pouvez rediriger la sortie vers un seul endroit et les erreurs à l'autre.

dir file.xxx > output.msg 2> output.err

Vous pouvez imprimer les erreurs et la sortie standard vers un fichier unique à l'aide de la commande "& 1" pour rediriger la sortie de STDERR à STDOUT, puis envoyer la sortie de STDOUT dans un fichier :

   dir file.xxx 1> output.msg 2>&1

LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne