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 :D

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é ^^'
Image

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. :evil:

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.