[R] Beep() sans pause

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

[R] Beep() sans pause

#1

Message par Iste »

Salutations,

J'ai cherché sans trouver, comment effectuer un beep, sans mettre en pause mon script.

Ca doit bien etre possible non ?
Modifié en dernier par Iste le ven. 12 juin 2009 20:09, modifié 1 fois.
Signez ici
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11823
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Beep() sans pause

#2

Message 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).
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Beep() sans pause

#3

Message 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
Signez ici
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [..] Beep() sans pause

#4

Message 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)
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Beep() sans pause

#5

Message 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
Signez ici
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11823
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Beep() sans pause

#6

Message 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
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [R] Beep() sans pause

#7

Message par Iste »

Mais bon sang mais c'est bien sûr !
Ou avait-on la tête ^^'

Merci bien Tlem, c'est parfait :)
Signez ici
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [R] Beep() sans pause

#8

Message 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.
Signez ici
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [R] Beep() sans pause

#9

Message 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.
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [R] Beep() sans pause

#10

Message 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
Signez ici
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [R] Beep() sans pause

#11

Message 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!
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 13:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

Re: [R] Beep() sans pause

#12

Message 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 ?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11823
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Beep() sans pause

#13

Message 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:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [R] Beep() sans pause

#14

Message 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.
Signez ici
Répondre