Page 1 sur 1
[R] Problème d'utilisation de la commande SoundPlay
Posté : dim. 03 avr. 2011 20:02
par blacksoul305
Bonsoir,
j'ai testé aujourd'hui la commande SoundPlay qui consiste à jouer un son.
Je suis entrain de faire une archive .zip, qui contient plusieurs parties.
J'ai un "Luncheur" qui est sensé jouer un son. Le soucis c'est qu'il ne le fait pas.
Il faut que je trouve un moyen pour ne pas bouger les .exe dans un dossier spécifiques et les sons dans un autres.
1)Je ne sais pas "montrer" un chemin a autoit (SoundPlay)
2)Même si je le savais, on a besoin du nom de l'ordinateur, et, celui-ci change à chaque PC !
Comment puis-je faire ?
Merci d'avance !
Re: Problème d'utilisation de la commande SoundPlay
Posté : dim. 03 avr. 2011 20:31
par Origamie
Si tu places les sons dans le dossier de ton exe tu peux utiliser la macro @ScrptFullPath et pour le nom de l'ordi tu fais @UserName
Re: Problème d'utilisation de la commande SoundPlay
Posté : dim. 03 avr. 2011 21:31
par sylvanie
Bonsoir
Origamie a écrit : pour le nom de l'ordi tu fais @UserName
il s'agit en fait de @Computername, mais l'idée de base et là en ce qui concerne le dézipage avec la macro @ScriptDir
.
Pensez également qu'il est possible de passer le chemin en relatif par rapport au lieu d'éxecussion (@Workingdir, qui est au début le même que @ScriptDir )
Re: [..] Problème d'utilisation de la commande SoundPlay
Posté : lun. 04 avr. 2011 16:45
par blacksoul305
Merci à vous deux pour vos réponses. Mon programme comporte un "Luncheur", si la réponse est positive, il lance un programme qui lui, doit jouer les sons. Bien sûr, c'est une blague. Etant débutant, je me familiarise un peu avec les commandes puis les macros qui sont utiles.
Voici les scripts, pouvez me dire quoi et où placé ?
Luncheur
► Afficher le texte
Code : Tout sélectionner
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=..\IconExtract\icons\FCTBSetup_101.ico
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
$LOL = Msgbox(32+4, "Luncher Installing", "Veuillez vous assurer que l'archive a bien été extraite sur votre Bureau")
$nMsg = GUIGetMsg()
Do
Switch $nMsg
Case $LOL = 7
Run( "CamStudio.exe") ;Celui-ci dans un autre sous dossier.
Case $LOL = 6
Exit
EndSwitch
Until $LOL = 7 or $LOL = 6
Programme
► Afficher le texte
Code : Tout sélectionner
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=..\IconExtract\icons\ccsetup228_103.ico
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
MsgBox(16, "CamStudio", "Une erreur s'est produite lors de l'installation de votre logiciel.")
$XD = MsgBox(16, "CamStudio", "CamStudio relance l'installation", 1)
SoundPlay("\Record-Sound.mp3", 1);Ici aussi, le son est placé dans un autre dossier que le programme
Voilà tout. J'espère que vous avez compris ce que j'aimerai faire. Je pense que c'est "facile" et que c'est à la portée d'un débutant comme moi, cependant je n'y suis pas arrivé.
Merci d'avance !
Re: [..] Problème d'utilisation de la commande SoundPlay
Posté : lun. 04 avr. 2011 16:57
par sylvanie
Et bien comme le suggérait Origamie, placez vos 3 composants (exe+launcher+mp3) dans la racine du zip et ceci devrait marcher tout seul.
vous pouvez améliorer en mettant :
et
Re: [..] Problème d'utilisation de la commande SoundPlay
Posté : lun. 04 avr. 2011 17:03
par blacksoul305
D'accord, je prendrai cette solution. Mais il n'y a pas moyen de dire au "Luncheur" que le programme se trouve dans tel sous dossier et dire au Programme que le son à jouer et dans tel sous dossier ?
Bref, sinon, ce la me va. Merci pour l'aide !
Re: [..] Problème d'utilisation de la commande SoundPlay
Posté : lun. 04 avr. 2011 17:34
par sylvanie
si, en passant le chemin en paramètre à CamStudio.exe, puis de le traiter via $CmdLine qui est le tableau contenant la liste des arguments
Allez, allez, on y est presque !
Re: [..] Problème d'utilisation de la commande SoundPlay
Posté : lun. 04 avr. 2011 18:33
par blacksoul305
D'accord d'accord ... Bon, bah écoutez, je pense qu'il est plus sage de m'arrêter à l'idée de mettre les fichiers dont j'ai besoin dans la même place ! Haha !
Une dernière chose encore, y a t-il moyen de faire en sorte que si la personne n'utilise pas le "luncher" pour ouvrir le .exe, celui-ci ne s'exécute pas (le .exe) ?
Merci encore !
EDIT: AutoIt ne lit pas mon script en entier. Il s'arrête lorsqu'il doit lire le son. Pourtant tout est dans le même dossier là...
EDIT2: J'ai rien dit, il suffit seulement d'être rigoureux sur tout ce qui est "espace", les " " " ...
Re: [..] Problème d'utilisation de la commande SoundPlay
Posté : lun. 04 avr. 2011 19:24
par sylvanie
Pour l'aspect "non lançabilité" sans le launcher, on peut bricoller un des trucs à 2 francs six sous, du genre :
1 ) créer un fichier temporaire par le launcher (ou une clé de registre ...) de nom fixe pour commencer (aléatoire serai un plus)
2) faire tester au programme lancé l'existence de ce fichier (ou clé) (penser à passer le nom aléatoire en argument si on prends la version ++) et si celà n'existe pas on se ferme
Ou alors plus simpliste : on lance le programme via le launcher avec un argument quelconque fixé, et si le progrmamme principal n'est pas démarré sans cet argument on s'arrête.
Re: [..] Problème d'utilisation de la commande SoundPlay
Posté : lun. 04 avr. 2011 19:39
par blacksoul305
Je sais pas si j'ai compris, mais bon, on est là pour ce tromper. Je pourrai peut être essayé de faire un truc comme quand on ouvre le luncheur, une variable ou une donnée se met dans la mémoire pendant un instant (donnée fixe), et que si quand on ouvre le programme, il vérifie si la donnée est là, sinon il se ferme. Ça m'a l'air correct, mais je fais comment ?
Re: [..] Problème d'utilisation de la commande SoundPlay
Posté : mar. 05 avr. 2011 10:04
par sylvanie
voici un exple de launcher minimaliste dans cette optique :
► Afficher le texte
Code : Tout sélectionner
; launcher
$filename=@TempDir&"\temoin"&Random(10,99,1) ; on créé un nom de fichier dans le fichier temporaire de la machine appelé temoinXX avec XX=10 à 99
$hnd=FileOpen($filename,2) ;on l'ouvre en écriture
FileClose($hnd); on on le referme de suite, comme ça on a créé un fichier vide
Run('"'&@ScriptDir&'\monexe.exe" '&'"'&$filename&'"') ; là je lance l'exe en donnant le nom du fichier en argument
et l'exe lancé, compilé préalablement :
► Afficher le texte
Code : Tout sélectionner
$nb_argument=$CmdLine[0] ; récupère le nombre d'arguments
if $nb_argument<> 1 Then ; si on n'a pas 1 argument en entrée on sort
Exit 1
EndIf
If not FileExists($CmdLine[1]) Then Exit 2 ; on a un argument, maintenant on test si il correspond à un fichier existant
;Bon et bien si on arrive là, c'est ok...
FileDelete($CmdLine[1]) ; on pense à nettoyer !!!
MsgBox(0,"test","lancé par le launcher")
Voilà c'est de la petite bidouille, mais pour une blague, c'est suffisant ^^
Re: [..] Problème d'utilisation de la commande SoundPlay
Posté : mar. 05 avr. 2011 12:54
par pierrotm777
Vous pouvez toujours écrire en dur le chemin de votre exe ou de votre son!
Code : Tout sélectionner
run("C:\Windows\System32\mspaint.exe")
qui peut aussi être écrit
run(@SystemDir&"\mspaint.exe")
pas besoin d'avoir tous les fichiers dans le même dossier

Re: [..] Problème d'utilisation de la commande SoundPlay
Posté : jeu. 07 avr. 2011 17:59
par blacksoul305
Hé bien, merci à vous deux pour l'aide.
Je sais maintenant comment utiliser cette commande.
A la prochaine !
Re: [..] Problème d'utilisation de la commande SoundPlay
Posté : jeu. 07 avr. 2011 20:07
par sylvanie
Pensez à passer le sujet en résolu [R]