Emuler une frappe clavier à partir d'un fichier txt

Emuler une frappe clavier à partir d'un fichier txt - Divers - Programmation

Marsh Posté le 18-12-2006 à 18:18:43    

Bonjour à tous !
Je viens sur ce forum désespéré. Voilà 3 jours que j'essaye de faire un petit programme et je n'y arrive pas.
Alors j'en appel aux Pros de la programmation !
J'ai un fichier txt avec des références, ex :
 
CDF33081830480150001000
CDF33081800357350012000
CDF33081800360910123000
CDF33081800357421234000
 
J'aimerais que mon programme lise ligne par ligne ces données et simule une frappe clavier avec un appui sur entrée à chaque fin de ligne.
Et si c'est possible, avant d'envoyer tout ça, rajouter à la fin du fichier txt une dernière infos donnant le nombre de ligne, de la forme : F0000000000000000000004 (pour 4 lignes).
 
Merci à ceux qui pourront m'aider !

Reply

Marsh Posté le 18-12-2006 à 18:18:43   

Reply

Marsh Posté le 18-12-2006 à 18:45:33    

Faut que ça aille où ?

Reply

Marsh Posté le 19-12-2006 à 07:12:40    

Justement faut que le programme fasse de l'émulation clavier c'est à dire qu'il doit taper au clavier le contenu du fichier txt. je sais pas si c'est possible ?

Reply

Marsh Posté le 19-12-2006 à 08:46:08    

Sous Windows en C/C++ avec l'API SendInput je crois.

Reply

Marsh Posté le 19-12-2006 à 09:06:08    

tu peux aussi regarder du côté de AutoIt. Je m'en suis servi pour installer automatiquement des softs : ça simule les frappes clavier et la souris ;)

Reply

Marsh Posté le 19-12-2006 à 09:24:00    

rufo a écrit :

tu peux aussi regarder du côté de AutoIt. Je m'en suis servi pour installer automatiquement des softs : ça simule les frappes clavier et la souris ;)

Oui, ça a l'air plus sensé que ma réponse  :pt1cable:  

Reply

Marsh Posté le 19-12-2006 à 09:39:35    

Trap D a écrit :

Oui, ça a l'air plus sensé que ma réponse  :pt1cable:


Je pense que c'est basé sur la même API, mais c'est une surcouche simple à utiliser. Le langage est facile et pas trop riche en commandes. En +, t'a un enregistreur d'actions et tout ce que fait l'utilisateur est enregsitré puis convertit en code AutoIt. Après y'a plus qu'à sauver le code dans un fichier de script (mais pour l'exécuter, faut AutoIt d'installé) ou le compiler pour avoir un exe en sortie :)

Reply

Marsh Posté le 19-12-2006 à 14:33:10    

merci à tous je vais chercher dans ce sens mais si quelqu'un peut me pondre un petit prog c'est pas de refus... :-p

Reply

Marsh Posté le 19-12-2006 à 14:45:54    

SendKeys en VBS :ange:

Reply

Marsh Posté le 19-12-2006 à 15:06:18    

Code :
  1. --------------------------------------------------------------------------------
  2. -- Nom de programme : main                                                  --
  3. -- Auteur                     : Manuel De Girardi                             --
  4. -- Description  : lis et affiche caractere par caractere un fichier dont le   --
  5. --                nom est donné en argument de ligne de commande.             --
  6. --------------------------------------------------------------------------------
  7.  
  8. with Text_Io;
  9. use Text_Io;
  10. with Ada.Command_Line;
  11. use Ada.Command_Line;
  12.  
  13. procedure Main is
  14.  
  15.   Fichier : File_Type;
  16.   Char : Character;
  17.  
  18. begin
  19.   if Argument_Count /= 1 then
  20.      Put_Line("usage : " & Command_Name & "nom_de_fichier" );
  21.      raise Program_Error;
  22.   end if;
  23.   Open(Fichier, in_File, Argument(1));
  24.   while not End_Of_File(Fichier) loop
  25.      Get_Immediate(Fichier,Char);
  26.      Put(Char);delay(0.001);
  27.   end loop;
  28.   New_Line;
  29.   Close(Fichier);
  30. end Main;


Message édité par Profil supprimé le 19-12-2006 à 15:13:02
Reply

Marsh Posté le 19-12-2006 à 15:06:18   

Reply

Marsh Posté le 19-12-2006 à 15:08:41    

Citation :

Hauteur


 
C'est exprès ? [:magicbuzz]

Message cité 1 fois
Message édité par MagicBuzz le 19-12-2006 à 15:08:51
Reply

Marsh Posté le 19-12-2006 à 15:11:13    

MagicBuzz a écrit :

Citation :

Hauteur


 
C'est exprès ? [:magicbuzz]


 
Je pense pas  :heink:  ..... j'ai encore du me tromper dans l'orthographe ... sorry

Reply

Marsh Posté le 19-12-2006 à 15:12:15    

merci jovalise je vais essayer ça je vous tiens au courant

Reply

Marsh Posté le 19-12-2006 à 15:18:36    

à la place de "usage :" je met quoi ?
pour "nom_de_fichier" j'ai mis "f:\fichier.txt"

Reply

Marsh Posté le 19-12-2006 à 15:21:49    

bendisco a écrit :

à la place de "usage :" je met quoi ?
pour "nom_de_fichier" j'ai mis "f:\fichier.txt"


 
A non non, à la place tu met rien .... que fait tu exactement ...
 
le code source si dessu est ecrit avec Ada un langage de programmation compilé.
Tu passe ce code à un compilo est tu l'execute en lui donnant un nom de fichier en argument.

Reply

Marsh Posté le 19-12-2006 à 15:22:45    

oups...

Reply

Marsh Posté le 19-12-2006 à 15:27:19    

[:atari]

Reply

Marsh Posté le 19-12-2006 à 15:28:40    

En fait, j' ai posté ce code en exemple de formulation du problème avec Ada.
Tu peut ecrire "la même chose" dans n'importe lequel des langages qui te convien.
Dans le cas ou tu veuille decouvrir Ada, tu peux utiliser gratuitement le compilateur Gnat entre autre.

Message cité 1 fois
Message édité par Profil supprimé le 19-12-2006 à 15:29:12
Reply

Marsh Posté le 19-12-2006 à 15:29:48    


t'ain y vend ça bien le bougre :D

Reply

Marsh Posté le 19-12-2006 à 15:30:33    

GNAT par exemple pour compiler ?

Reply

Marsh Posté le 19-12-2006 à 15:32:07    

nan, le langage ADA.
 
le meilleur langage du monde, mais certainement aussi le plus boudé de tous.
 
plutôt contradictoire d'ailleurs.

Reply

Marsh Posté le 19-12-2006 à 15:33:10    

Ma foix, si tu l'a sous la main ...  :sol:

Reply

Marsh Posté le 19-12-2006 à 15:34:29    

MagicBuzz a écrit :

nan, le langage ADA.
 
le meilleur langage du monde, mais certainement aussi le plus boudé de tous.
 
plutôt contradictoire d'ailleurs.


 
H.S.

Spoiler :


Boudé, parce que trop rigide peut-etre, bien que très puissant quand même pour moi.


Message édité par Profil supprimé le 19-12-2006 à 15:37:02
Reply

Marsh Posté le 19-12-2006 à 15:35:48    

bendisco a écrit :

GNAT par exemple pour compiler ?


 
si non, peut-etre que je peux te trouver d'ici demain un compilateur leger pour DOS,

Reply

Marsh Posté le 19-12-2006 à 15:36:19    

je suis en train de le télécharger... 69Mo quand même

Reply

Marsh Posté le 19-12-2006 à 15:37:58    

bendisco a écrit :

je suis en train de le télécharger... 69Mo quand même


 
 :lol: , ça vaut le coup, vraiment  :heink:

Reply

Marsh Posté le 19-12-2006 à 15:40:13    

AutoIt, il ne fait que 1.5 Mo...Et y'a tous les outils pour faire ce que tu veux très simplement.

Reply

Marsh Posté le 19-12-2006 à 15:43:38    

toi tait toi, parceque vbs, le wsh est déjà intégré dans windows donc y'a pas de dwl :p
et y'a pas besoin de compiler
et ça fait tout ce qu'on veut
 
et toc :p
 
mais ada c'est mieux :o

Reply

Marsh Posté le 19-12-2006 à 15:47:38    

bon problème réglé, l'installateur de GNAT plante...
je vais donc essayer de faire mon programme avec autoit qui est déjà installé

Reply

Marsh Posté le 19-12-2006 à 15:50:39    

MagicBuzz a écrit :

toi tait toi, parceque vbs, le wsh est déjà intégré dans windows donc y'a pas de dwl :p
et y'a pas besoin de compiler
et ça fait tout ce qu'on veut
 
et toc :p
 
mais ada c'est mieux :o


 
 
Je dirais, bien qu'un simple amateur ... mais peut-etre à fortiori ... qu'une fois la philosophie Ada entendue, aucune raison d'utiliser un autre langage ... si c'est une question de choix du langage ... Ada à était developpé par le depatement de la defense des Etats Unis dans le but de sauver des vies, si aucune vie n'est à sauver, pourquoi ne pas utiliser un langage mieux adapté au besoin. C'est clair. Mais qui peut le plus peut le moins, à peu près  :heink:

Reply

Marsh Posté le 19-12-2006 à 16:06:14    

Contrat utilisateur Ada :
"ADA s'efforce de garantir une infaillibilité totale patati patata"
 
Contrat utilisateur Java :
"Sun ne saurait être tenu pour responsable des pertes humaines liées à l'utilisation de ce produit"
 
(en pour de vrai pour ce qui est des CGU de Java. Ecrites telles quelles dans la distrib sun java présente dans les CD Windows NT 4 SP4)
 
:D


Message édité par MagicBuzz le 19-12-2006 à 16:06:28
Reply

Marsh Posté le 19-12-2006 à 16:46:32    

Pour les pros de AutoIt :
J'arrive a ouvrir mon fichier avec AutoIt.
J'aimerais qu'il me compte le nombre de lignes de texte (des références) et qu'il l'ajoute dans la variable $nbl.
Comment puis-je faire ?

Reply

Marsh Posté le 19-12-2006 à 16:59:52    

ben tu regardes dans la doc les fonctions liées à la lecture de fichiers. Y'aura bien une fonction qui lit une ligne. T'auras donc plus qu'à faire une boucle + compteur.
 
J'ai un fichier compressé qui fait 630 ko qui contient pas mal de doc. En MP, si tu veux, tu me donnes ton mail pour que je te l'envoie...

Reply

Marsh Posté le 19-12-2006 à 17:04:36    

je t'ai envoyé un mp rufo

Reply

Marsh Posté le 19-12-2006 à 17:04:42    

Tiens, un bout de code pris à l'arrache dans l'un de mes scripts :  
 

Code :
  1. ;Lecture de la première partie du fichier InstallAuto.ini : la liste des fichiers à installer ou non
  2. Dim $fp = FileOpen($IniFile, 0)
  3. ;Erreur à l'ouverture du fichier : on arrête l'installation
  4. If $fp = -1 Then
  5. MsgBox(0, "Installation automatisée", "Arrêt de l'installation automatisée car le fichier .ini n'a pu être chargé!" )
  6. Exit
  7. EndIf
  8. Dim $Line
  9. While 1
  10. $Line = FileReadLine($fp)
  11.  
  12. If (@error = -1) Or ($Line = "" ) Then ExitLoop
  13.  
  14. If StringLeft($Line, 1) <> ";" Then
  15.  _ArrayAdd($ArrayApplisToInstall, $Line)
  16. EndIf
  17. Wend
  18. FileClose($fp)

Reply

Marsh Posté le 19-12-2006 à 17:50:13    

Merci rufo pour la doc

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed