Execution d'un process via Java : Comment "simuler" le clavier ??? - Java - Programmation
Marsh Posté le 04-12-2003 à 13:58:46
ReplyMarsh Posté le 04-12-2003 à 14:07:22
El_gringo a écrit : La classe java.awt.Robot est ton amie. |
implements Asimov.FirstLaw, Asimov.SecondLaw, Asimov.ThirdLaw ???
A+,
Marsh Posté le 04-12-2003 à 15:08:49
El_gringo a écrit : La classe java.awt.Robot est ton amie. |
Merci..
C cool, j'arrive à simuler le clavier..
Mais comment faire pour "brancher le clavier" sur l'entrée standard du process ??
J'ai beau essayé, je n'y arrive vraiment pas....
Je peux récupérer l'OutputStream du process, mais je ne vois pas comment lui assigner un stream en entrée/sortie...
gilou > j'suis complétement HS, j'ai bien mis 5 minutes a comprendre ta blague...
(entre temps, j'ai été chercher la classe Asimov dans la JavaDoc.. )
Marsh Posté le 04-12-2003 à 15:20:40
C bon j'ai réussi !!!!
Finalement, je n'ai pas besoin de notre ami le Robot..
Un simple
Code :
|
Suffit à mon bonheur !!!
Me demander pas pkoi je n'avais pas réussi à faire de même avec les autres classes de flux (certainement mauvais codage du retour chariot)
Merciii a vous en tout cas..
Marsh Posté le 04-12-2003 à 15:21:57
Marsh Posté le 04-12-2003 à 15:24:02
ReplyMarsh Posté le 04-12-2003 à 15:33:10
bin pq il fait pas avec robot, si son process a le focus ca marche sans problème.
donc mon est parce qu'il a réinventé la roue (et comme un porc en plus)
Marsh Posté le 04-12-2003 à 15:43:46
DarkLord a écrit : bin pq il fait pas avec robot, si son process a le focus ca marche sans problème. |
y a pas longtemps tu croyais que le java.awt.Robot était pas capable de balancer des événements à un process externe, alors fais pas ton kéké
je vois pas le problème d'envoyer des caractères à un process qui attend des évenements claviers ...
Marsh Posté le 04-12-2003 à 15:58:49
benou a écrit : |
moi non plus, surtout que si tu utilises awt, ben ca plante si t'es pas sous un environnement graphique (au pif, un unix sans X installé).
Marsh Posté le 04-12-2003 à 16:10:09
lorill a écrit : |
peut être pas la classe Robot ...
Marsh Posté le 04-12-2003 à 16:13:09
benou a écrit : |
je sais pas s'ils se sont amusés a faire un découpage par classe...
faudrait vérifier.
Marsh Posté le 04-12-2003 à 16:16:28
[gedoc@linasi gedoc]$ cat Awt.java |
Code :
|
|
boom
Marsh Posté le 04-12-2003 à 16:31:02
lorill a écrit : boom |
enfin bref, pas besoin du robot quoi ...
Marsh Posté le 04-12-2003 à 16:39:41
DarkLord a écrit : bin pq il fait pas avec robot, si son process a le focus ca marche sans problème. |
Justement, l'utilisation du robot n'influence pas mon Process..
C pour cela que j'ai essayé autre chose..
Sinon, ca tournera sous du Win donc y'aurait pas eu de souci awt...
Marsh Posté le 04-12-2003 à 20:36:16
benou a écrit : |
ptain j'ai reconnu mon erreur, tu veux que je fasse quoi, que je te cire les pompes?
Marsh Posté le 04-12-2003 à 21:02:18
DarkLord a écrit : |
ca se serait cool !
nan, c'est juste que ce serait bien que tu évitse de trainer le mec plus bas que terre parce qu'il connait pas un truc que tu viens tout juste d'apprendre ...
(d'autant plus que c'était pas forcément le plus adapté).
enfin voilà quoi.
C'était aussi une occasion d'utiliser le mot "kéké" ((c) Taiche)qui me fait bien rire.
Marsh Posté le 04-12-2003 à 21:05:51
benou a écrit : |
Moi j'dis "dindon" mais plus rarement "kéké"
Marsh Posté le 04-12-2003 à 21:06:32
DarkLord a écrit : |
uoais enfin :
Citation : PrintStream printStream_l = new PrintStream(process_l .getOutputStream()); |
reinventer la roue en une ligne ca le fait pas mal je trouve
Marsh Posté le 04-12-2003 à 21:08:56
Taiche a écrit : |
kéké était plus adapté dans ce cas
Marsh Posté le 04-12-2003 à 23:23:00
DarkLord a écrit : bin pq il fait pas avec robot, si son process a le focus ca marche sans problème. |
TOTOZ T CON OU QUOI
Marsh Posté le 05-12-2003 à 06:59:17
the real moins moins a écrit : TOTOZ T CON OU QUOI |
mais encore ...
Marsh Posté le 05-12-2003 à 13:58:36
ben le coup des inpustream et outputstream c'est exactement la bonne manière de faire ce qu'il devait faire (envoyer un flux sur l'entrée de son process), il n'a rien inventé ou quoi
(désolé pour le gros mot )
Marsh Posté le 05-12-2003 à 14:00:55
voir 4 posts ci dessus
Marsh Posté le 05-12-2003 à 16:52:04
chrisbk a écrit :
|
Marsh Posté le 03-12-2003 à 18:31:22
Mon programme Java doit pouvoir executer un programme C qui fonctionne en ligne de commande.. (sous environnement Windows)
Oubliez les techno J2EE, pas le temps de le faire...
Mon programme Java doit donc :
lancer le programme (appelons le prog.exe) avec un argument (path du fichier a ouvrir)
Simuler la saisie '1' sur la ligne de commande
Simuler la saisie '4' sur la ligne de commande
Simuler la saisie 'Result.txt' sur la ligne de commande
Je pensais donc lancer un Process qui lancement ce programme et simulerait le clavier..
Pour cela :
(le process est correctement crée (défini dans le PATH), il me bouffe même tout mon CPU si j'oublie de le détruire.. )
Ensuite, je cherche à simuler l'appui sur la touche '1' en ecrivant sur le flux d'entrée avec :
(comment on simule un retour clavier ?? \n \r ???)
Ma facon de faire est-elle correcte ???
Ai-je oublier quelque chose ???
Y'a t-il un meilleur moyen de le faire ???
Le problème C que je n'arrive pas à récupérer le flux de sortie (
process_l.getInputStream()) qui me permettrait d'avoir une visibilité sur ce qui se passe (a première vue rien..)
(C indiqué dans la JavaDoc qu'essayer de lire sur ce flux peut bloquer le process sur certaines plateforme ce qui est exactement mon cas ici.. Je vais essayer d'utiliser des Pipe pour voir si cela fonctionne mieux..)
Merciiii
Message édité par Dephi le 03-12-2003 à 18:33:36