Page 1 sur 1

[R] Probléme avec le sablier de la souris

Posté : mer. 19 janv. 2011 14:25
par quelqun
bonjour :)
bon voila comme le titre l'indique j'aimerais éxecuter un script en batch compiler en .exe toute les minutes dont voila le code (pas du script batch):

Code : Tout sélectionner

while 1
    run("script bat.exe")
    sleep(60000)
wend
mais le probleme que je rencontre c'est que a chaque minute il y a le sablier de la souris qui vient dérranger et qui dure environ 2 a 3 secondes ce qui me dérrange vraiment :x
n'y a t-il pas une maniére pour le empêcher le sablier de réapparaitre a chaque minutes?

Re: [...]probléme avec le sablier de la souris

Posté : mer. 19 janv. 2011 15:01
par Dexxpo
Ma remarque n'est peut être pas constructive... mais peut-être faut-il changer le PC :)
Le sleep ne fait pas apparaitre de sablier c'est surement le traitement du .bat qui rame au démarrage.

Re: [...]probléme avec le sablier de la souris

Posté : mer. 19 janv. 2011 15:13
par TommyDDR
Bonjour,

Un Run(), comme son nom l'indique, lance un executable, et à chaque lancement d'application, windows change le curseur de votre souris.
(Non Dexxpo, cela n'est pas un "ramage")

Donc, si vous voulez changer le curseur pour votre Run(), cela le changera pour toutes les autres applications.

Pour ce faire, regarder du côté de l'UDF sur les curseurs, je n'ai plus le lien du forum US en tête, je vous le joint à mon message.

Re: [..] Probléme avec le sablier de la souris

Posté : mer. 19 janv. 2011 23:36
par Tlem
Généralement, ce qu'un batch peut faire, AutoIt peut le faire aussi. Donc l'idéal serait de convertir votre Batch en code AutoIt. :roll:

Re: [..] Probléme avec le sablier de la souris

Posté : jeu. 20 janv. 2011 00:02
par quelqun
en faite je voudrais simplement faire un timer qui execute un script chaque minute le probléme avec autoit c'est que quand il y a la fonction run("mon programme.exe") il ya le sablier qui vient 2 a 3 secondes. et imagine que chaque minute il ya un sablier prés de la souris il vient et il revient.... c'est énevant.
mais en batch il ya pas de sablier juste que un script du genre:

Code : Tout sélectionner

:start
set sec=%time:~6,2%
if %sec% EQU 10 start prog.exe
goto start
 
qui est pas du tout pratique et sature le processeur avec la boucle infini. si seulement il y avait la fonction sleep() sa serais trés bien :)

Re: [..] Probléme avec le sablier de la souris

Posté : jeu. 20 janv. 2011 00:15
par Tlem
Et bien dans ce cas, faites un timer avec AutoIt (je vous laisse chercher sur le forum ...), puis utilisez la commande ShellExecute au lieu du Run.

Re: [..] Probléme avec le sablier de la souris

Posté : jeu. 20 janv. 2011 13:47
par quelqun
avec ShellExecute c'est plus lent environ 3 a 4 secondes que dure le sablier.

Re: [..] Probléme avec le sablier de la souris

Posté : jeu. 20 janv. 2011 19:17
par Tlem
Ce doit être votre programme 'prog.exe' qui fait afficher le curseur. :roll:

Re: [..] Probléme avec le sablier de la souris

Posté : jeu. 20 janv. 2011 19:22
par TommyDDR
Non tlem, c'est bel et bien windows qui gère cela, essayer un "Run" (qui lance un exe autoit contenant une msgbox par exemple) en ayant pri soin au préalable de déplacer le curseur de votre souris sur votre bureau par exemple, vous verrez que le sablier apparait.

Re: [..] Probléme avec le sablier de la souris

Posté : ven. 21 janv. 2011 00:02
par Tlem
Le lancement d'un script AutoIt fera toujours apparaitre le sablier une fraction de seconde, à cause du chargement de l'interpréteur.
Par contre une fois lancé, celui-ci ne fait plus apparaitre le sablier si vous lui faites faire des 'actions rapides'.
Essayez ceci :

Code : Tout sélectionner

#include <Constants.au3>
#Include <File.au3>

MsgBox(0,"Test 1","Utilisation de la commande RUN." & @CRLF & "Demarrage dans 3 secondes",3)
Local $foo = Run(@ComSpec & " /c dir /S " & @SystemDir, @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
Local $line
While 1
    $line = StdoutRead($foo)
    If @error Then ExitLoop
    If $line <> "" Then MsgBox(0, "STDOUT read:", $line, 5)
Wend
MsgBox(0,'Test 1','Test 1 terminé (Timeout 5s)', 5)


MsgBox(0,'Test 2',"Utilisation de la commande ShellExecute." & @CRLF & "Demarrage dans 3 secondes",3)
Local $foo = ShellExecute(@ComSpec, " /c dir /S " & @SystemDir, @SystemDir)
MsgBox(0,'Test','Test terminé (Timeout 5s)', 5)


MsgBox(0,'Test 3',"Utilisation de la commande _FileListToArray." & @CRLF & "Demarrage dans 3 secondes",3)
_FileListToArray(@SystemDir, "*" ,0)
MsgBox(0,'Test 3','Test terminé (Timeout 5s)', 5)
Vous ne verrez le curseur qu'au lancement du script et à la fin ... :roll:
Et pourtant, ce script liste les fichiers du dossier system32. :mrgreen:

Re: [..] Probléme avec le sablier de la souris

Posté : lun. 24 janv. 2011 20:50
par quelqun
ok c'est régler avec :

Code : Tout sélectionner

RunWait(@ComSpec & prog.exe,"",@SW_HIDE)
probleme résolu!