IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Imitation de l'utilisation du clavier pour un autre programme (Piloter un programme)


Sujet :

Linux

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Imitation de l'utilisation du clavier pour un autre programme (Piloter un programme)
    Bonjour,
    En fait je voudrais savoir si quelqu'un saurai comment simuler l'utilisation du clavier pour un autre programme. Je m'explique :
    Un programme qui s'execute dans une console linux, il peut par exemple demander un mot de passe, ou autre chose qui necessite une réponse de l'utilisateur avec le clavier.
    Est t'il possible de construire un programme qui fera appel a un autre programme (en arriere plan invisible dans l'idéal), et completera les informations demandés par celui-ci, ecrit le mot de passe ...

    On suppose justement que le problème est que l'on ne peut pas passer toutes ces informations en parametre de ligne de commande au programme que l'on désire appeler.

    Merci
    VanVan

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2005
    Messages : 241
    Points : 399
    Points
    399
    Par défaut
    Bonjour,
    est-ce qu'une redirection des entrées-sorties standards ne répondrait pas à ton problème?
    Dans l'idée, un programme sert d'intermédiaire entre l'utilisateur et l'appli, et lorsqu'il détecte les phases spécifiques que tu cherches, l'auto-completion se charge de masquer à l'utilisateur cette saisie.

    S. Desbois

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    absolument..

    il suffit de faire "prg1 < fichier"

    et les lignes écrites dans fichier seront interprétées par prg1 comme si l'utilisateur les avaient entré (si la lecture se fait par les fonctions et file descriptors standards, bien sûr)..

  4. #4
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Et si tu veux créer un programme qui le pilote, tu crées un tube qui fera le travail pour toi.
    Le programme pilote écrira dans le tube et le programme piloté lira à partir du tube en croyant que c'est l'entrée standard (faut juste fermer les bons flux).

    Jc

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    merci pour vos réponses ...

    Mais en supposant que le programme ne soit pas concu pour lire sur l'entrée standard, a partir de la fonction C getpass() pour un mot de passe qui lit une entree clavier, ou meme scanf(), qui n'est donc je crois pas rediriger a partir de l'appel shell "prg1 < fichier".

    Dans ce cas est-ce quand meme possible de répondre soit même au programme que l'on désire piloté ?

  6. #6
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    scanf lit de l'entrée standard et getpass aussi je pense.

    Il faut tester mais je ne vois pas pourquoi cela poserait un probème.

    Jc

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Apres ce que tu m'as dit, j'ai donc verifier
    et en fait le probleme provient de la.

    scanf() lit effectivement a partir de l'entree standard, mais getpass() et d'autres non, donc impossible de faire ./prog < fichier

    N'y aurais t'il pas un autre moyen, avec les signaux ou autres, de pouvoir communiqué avec eux quand meme, en supposant que je ne peut pas modifier la programmation du programme que je veux piloter, donc getpass() obligatoire.

  8. #8
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2005
    Messages : 241
    Points : 399
    Points
    399
    Par défaut
    Bonjour,
    est-il possible que "getpass()" accède au tty directement, par un open() sur /dev/tty ou un truc du genre?
    Si c'est le cas, alors il te faudra à priori ( supposition pure ) ouvrir ce même descripteur, et écrire au bon moment.

    S. Desbois

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/04/2014, 09h23
  2. Réponses: 1
    Dernier message: 10/04/2012, 23h12
  3. utilisation des raccourcis claviers pour debugger.
    Par Mobistar dans le forum Eclipse Java
    Réponses: 8
    Dernier message: 30/05/2007, 15h39
  4. Réponses: 1
    Dernier message: 29/12/2005, 13h25
  5. [] Raccourci clavier pour bouton d'une barre d'outil
    Par Sébastien dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 24/03/2003, 17h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo