Page 1 sur 1

[..] Demande de script simple de débutant

Posté : ven. 25 avr. 2008 00:21
par jrm
Bonjour,

je pense avoir compris comment simuler l'appui sur la touche entrée, cependant, un petit problème m'interpelle :
je souhaiterai simuler l'appui sur la touche entrée sur une fenêtre uniquement; j'explique un peu mieux... :
j'utilise un logiciel gratuit qui lance une pub sur une fenêtre internet toute les 2 minutes à peu près; je dois fermer la fenêtre ou switcher vers la fenêtre du logiciel (ms-dos). Le problème d'un script qui ne ferait qu'appuyer sur la touche entrée est que lorsque la page internet apparaîtrait, la simulation de la touche entrée se ferait sur la page internet et non sur la fenêtre du logiciel.

Pouvait vous me réaliser un petit script ou bien me mettre sur la voie pour que celui-ci fasse :
- Lancement éventuel du programme (peu important) [run.bat]

- Vérification si la fenêtre active est bien run.bat
- Si oui, appui sur la touche entrée, si non switch vers run.bat
Ces 2 opérations ce feraient toutes les X secondes (150sec par exemple)

- Le tout ce ferait infiniment jusqu'à ce que le script soit arrêter ou bien que la fenêtre soit fermée.

J'espère avoir était le plus clair possible et que vous pourrez m'éclairer parceque j'aimerais automatiser cette action qui m'empeche pour le moment de faire autre chose que de rester scotcher devant l'écran toute la journée en attendant d'appuyer sur entrée apres que la pub soit apparue :)

Merci.

Re: Demande de script simple de débutant

Posté : ven. 25 avr. 2008 08:22
par Yogui
déjà juste que je suis vraiment heureux de pouvoir t'aider (c'est la première fois que je met un script ici)

Code : Tout sélectionner

; ----------------------------------------------------
; -------------------- Section I --------------------
; ----------------------------------------------------
; Version AutoIt :    3.2.8.1
; Langue     :        Francais
; Plateforme :        Win9x/XP
; Autheur    :        yogui ;
; Fonction du script ; attend une fenêtre et faite entrer
;
;
;
; Version 1.0 : 25/04/2008
;           - Première Version.
;
 
While 1
 WinWaitActive ( "run.bat" ) ; attend  la fenêtre nommée run.bat
  send ( "{ENTER}" ) 
WEnd
je me suis largement inspiré des tutos

pour tester mon code batch est le suivant :

Code : Tout sélectionner

@echo off
cls
TITLE run.bat

pause


echo on

Re: Demande de script simple de débutant

Posté : ven. 25 avr. 2008 15:37
par Tlem
@jrm : merci de respecter les règles de présentation d'un post : http://www.autoitscript.fr/forum/viewto ... f=20&t=595

@Yogui : J'ai simplifier votre code des parties inutiles.
De plus il serait plus judicieux de lancer le batch en récupérant son PID (Voir l'aide de la commande RUN).
Un fois le PID du process connu, il est très simple d'envoyer une commande à celui-ci sans se préoccupé de la fenêtre ...

Re: [..] Demande de script simple de débutant

Posté : ven. 25 avr. 2008 19:04
par jrm
Merci de ta réponse. J'ai donc fait :
- Click droit sur le bureau
- Autoit V3 script
- J'ai collé ton script
- Enregistrer
- Lancer run.bat
- Clique droit sur le script, Run script.

Je ne comprends pas à quel moment intervient le batch ? :s

Re: [..] Demande de script simple de débutant

Posté : ven. 25 avr. 2008 19:32
par Tlem
Le code Yogui ne peut pas fonctionné.
Il faut l'adapter avec ce que j'ai suggérer.

Re: Demande de script simple de débutant

Posté : lun. 28 avr. 2008 14:22
par Yogui
Tlem a écrit :@jrm : merci de respecter les règles de présentation d'un post : http://www.autoitscript.fr/forum/viewto ... f=20&t=595

@Yogui : J'ai simplifier votre code des parties inutiles.
De plus il serait plus judicieux de lancer le batch en récupérant son PID (Voir l'aide de la commande RUN).
Un fois le PID du process connu, il est très simple d'envoyer une commande à celui-ci sans se préoccupé de la fenêtre ...

Bonjour,

je pense que le script que vous indiquez doit resembler à celui ci

Code : Tout sélectionner

$pid = Run("run.bat")
Sleep(100)
If ProcessExists($pid) Then ProcessClose($PID)
je ne vois pas comment l'adapter pour une fenêtre qui se lance automatiquement donc qui change de PID.

Re: [..] Demande de script simple de débutant

Posté : lun. 28 avr. 2008 15:16
par Tlem
La première ligne du script, récupère effectivement le PID du batch lancé par la commande RUN.
Après, il faut voir ce que jrm veut en faire.

Mais une fois le PID connut, il est facile d'envoyer des commandes à cette fenêtre.

Re: [..] Demande de script simple de débutant

Posté : mar. 17 juin 2008 13:47
par KTux
Je dirais, pour reprendre les précédents posts :

Code : Tout sélectionner

Dim $pid=Run("run.bat"),$winList,$handle=0
Sleep(1000)
$winList=WinList()
Dim $i
For $i=1 to $winList[0][0]
If WinGetProcess($winList[$i][1])=$pid then
$handle=$winList[$i][1]
ExitLoop
EndIf
Next
If not $handle then
MsgBox(16,"Erreur","Impossible de trouver la fenêtre associée à run.bat.")
Exit
EndIf
While 1
WinActivate($handle) And Send("{ENTER}")
Sleep(150000) ;150 sec comme donné en exemple dans le post initial
Wend
 
(PS : pas vérifié, à voir donc.)