Page 1 sur 1
[R] Beep() sans pause
Posté : ven. 12 juin 2009 00:28
par Iste
Salutations,
J'ai cherché sans trouver, comment effectuer un beep, sans mettre en pause mon script.
Ca doit bien etre possible non ?
Re: [..] Beep() sans pause
Posté : ven. 12 juin 2009 00:56
par Tlem
Beep est comme un RunWait, il ne rend la main que quand c'est fini.
Si vous voulez que votre script continue, utilisez plutôt SoundPlay($Sound, 0).
Re: [..] Beep() sans pause
Posté : ven. 12 juin 2009 01:14
par Iste
Moui, mais comme vous devez commencer a le savoir sur ce forum, mon ordi est des plus... rustique, et n'a pas d'autre moyen de faire du bruit que part la fonction beep()
Toute foi, _WinAPI_MessageBeep(0) beep bien, et j'ai pas eu l'impression qu'il stop mon script !
De toute facon, je vais surement voir pour une forme d'alerte graphique, car a force tout ces bips m'agacent ^^'
mais deux ou trois ca me plairait quand meme bien
ne peut-on pas simplement envoyer un run() pour demander un beep ? Pas trouvé sur le net :/
merci quand meme, je laisse ouvert car je n'ai qu'une demi réponse
Re: [..] Beep() sans pause
Posté : ven. 12 juin 2009 05:34
par SagePourpre
J'ai une solution à ce problème...
Tu devras utiliser deux scripts
Beep.exe va contenir ta commande beep()
Donc, au lieu de faire beep() dans ton script principal, tu lances le script secondaire
avec ShellExecute("Beep.exe")
Et tant qu'à avoir un script qui gère les beep, je t'ai fais une version te permettant d'émettre un beep de n'importe quelle tonalité/durée
Code : Tout sélectionner
If $CmdLine[0] > 0 Then
Switch $CmdLine[0]
Case 1
Beep($CmdLine[1],1000)
Case 2
Beep($CmdLine[1],$CmdLine[2])
EndSwitch
Else
Beep(200,1000)
EndIf
Ensuite, pour faire plus "propre", il ne reste qu'à inclure "Beep.exe" à l'intérieur de ton script principal et écrire le fichier quand le script est lancé
(et l'effacer automatiquement quand on quitte le script principal)
Re: [..] Beep() sans pause
Posté : ven. 12 juin 2009 20:05
par Iste
Mais oui !
En plus avec la super technique expliqué par Tlem montré dans le topic pour sécuriser un script (je sais plus le quel, mais je retrouverais), meme pas besoin d'avoir deux .exe ^^
[R] alors, car je pense pas trouver mieux. Merci beaucoup de m'avoir fait penser a ca ! (surtout pour le coup des paramètres

)
Edit : le post en question
http://www.autoitscript.fr/forum/viewto ... f=3&t=2972
Re: [R] Beep() sans pause
Posté : ven. 12 juin 2009 23:08
par Tlem
En moins compliqué, on peut faire ceci :
Code : Tout sélectionner
_Beep(200, 5000)
Sleep(1000)
MsgBox(32,"","Le script continue malgré tout", 2)
MsgBox(64,"","Hé hé hé, ca fonction ...", 2)
Func _Beep($iTon, $iDuree)
If Not @Compiled Then
Run(@AutoItExe & ' /AutoIt3ExecuteLine "Beep(' & $iTon & ',' & $iDuree & ')"')
Else
Run(@ScriptFullPath & ' /AutoIt3ExecuteLine "Beep(' & $iTon & ',' & $iDuree & ')"')
EndIf
EndFunc ;==>_Beep
Re: [R] Beep() sans pause
Posté : ven. 12 juin 2009 23:47
par Iste
Mais bon sang mais c'est bien sûr !
Ou avait-on la tête ^^'
Merci bien Tlem, c'est
parfait 
Re: [R] Beep() sans pause
Posté : jeu. 23 juil. 2009 08:13
par Iste
Petit up pour une question simple,
Chaque foi, tu crée cette condition
Code : Tout sélectionner
If Not @Compiled Then
Run([b]@AutoItExe[/b] & ' /AutoIt3ExecuteLine "code"')
Else
Run([b]@ScriptFullPath[/b] & ' /AutoIt3ExecuteLine "code"')
EndIf
Or,
@AutoItExe =
The full path and filename of the AutoIt executable currently running. For compiled scripts it is the path of the compiled script.
Soit,
@AutoItExe =
@ScriptFullPath non ? Du coup, la condition n'est elle pas superflu ?
Merci.
Re: [R] Beep() sans pause
Posté : jeu. 23 juil. 2009 08:24
par SagePourpre
Iste a écrit : non ? Du coup, la condition n'est elle pas superflu ?
Merci.
En effectuant le test, une seule conclusion s'impose... Tu as absolument raison
La condition if @compiled, dans ce cas de figure, n'as pas lieu d'être.
Du moins, elle ne sert à rien ici.
Re: [R] Beep() sans pause
Posté : jeu. 23 juil. 2009 08:31
par Iste
Ok merci bien, car je transpirai déjà a l'idée de devoir corriger tout mes code, ou je l'avais oublié ^^'

Re: [R] Beep() sans pause
Posté : sam. 04 sept. 2010 06:30
par matwachich
En effectuant le test, une seule conclusion s'impose... Tu as absolument raison
La condition if @compiled, dans ce cas de figure, n'as pas lieu d'être.
Du moins, elle ne sert à rien ici.
Et non mon ami, cette condition est essentielle si vous voulez que votre script fonctionne qu'il soit compilé ou pas, et SURTOUT sur une machine n'ayant pas autoit!
Re: [R] Beep() sans pause
Posté : sam. 04 sept. 2010 12:24
par Habibsbib
Si je comprend bien tous les scripts compilés avec AutoIt ont une commande en ligne "AutoitExecuteLine" ?
Ça fait vraiment pas professionnel.
N'y a-t'il pas un moyen de l'enlever ?
Re: [R] Beep() sans pause
Posté : sam. 04 sept. 2010 13:15
par Tlem
Un petit peut de lecture ne vous ferai pas de mal ...
Déjà, ce n'est pas
AutoitExecuteLine mais
AutoIt3ExecuteLine et puis, taper ce terme dans l'aide de AutoIt serait un minimum.

Re: [R] Beep() sans pause
Posté : sam. 04 sept. 2010 20:09
par Iste
matwachich a écrit :Et non mon ami, cette condition est essentielle si vous voulez que votre script fonctionne qu'il soit compilé ou pas, et SURTOUT sur une machine n'ayant pas autoit!
Hum, là je vois pas trop. Prennons les 4 cas
1- Le script est compilé et autoit installé.
Run(@ScriptFullPath & ' /AutoIt3ExecuteLine "code"') -> Appel le script compilé avec le code a interpréter = OK
2- Le script est
non compilé et autoit installé.
Run(@ScriptFullPath & ' /AutoIt3ExecuteLine "code"') -> Appel le script compilé avec le code a interpréter = OK
En gros, si c'est compilé @ScriptFullPath fonctionne et osef qu'autoit soit installé ou non
3- Le script est compilé et autoit
non installé.
Run(@ScriptFullPath & ' /AutoIt3ExecuteLine "code"') -> Appel le l'interpréteur avec le code a interpréter = OK
4- Le script est
non compilé et autoit
non installé.
Run(@ScriptFullPath & ' /AutoIt3ExecuteLine "code"') -> La ca marche pas, mais en meme temps, c'est normal, et quelque soit la condition ca revient au meme. Sauf si l'on change @AutoItExe par le lien de l'interpréteur, mais la c'est une autre histoire.