Page 1 sur 1
[Ex] VistaZ V
Posté : dim. 30 août 2009 12:06
par neo2606
Bonjour
Pour être en règle avec la présentation du message, j'ai fait de mon mieux. Surtout pour mon premier sujet.
Depuis quelque temps je m'étais inscrit sur le forum de AutoIt (Anglais) et bien que l'Anglais ne me dérange pas, j'ai décidé de m'inscrire également sur AutoIt Français.
Voici mon premier script:
1) VistaZ V est un script qui modifie le volume de vista. Pour cela j'ai utliser le plugin de "wraithdu" (Vous trouverez le lien en bas).
J'ai un peu regarde son script qu'il donne en exemple et je me suis lancé.
► Afficher le texte
Code : Tout sélectionner
#include <GuiConstantsEx.au3>
#include <ProgressConstants.au3>
#include <Timers.au3>
#include <StaticConstants.au3>
Opt("TrayMenuMode",1)
Global $gui, $prog, $label, $th, $show,$timer = ""
Global $hDLL = PluginOpen("vista_vol.dll")
Global $hUserDLL = DllOpen("user32.dll")
$Mp3PlayerGui = GUICreate(" VistaZ V", 150, 300,-1,-1,-1,0x00000080)
GUISetBkColor(0x000000)
$Guipic = GUICtrlCreatePic (@ScriptDir & "\Sound.jpg",0,0,100,300)
$slider = GUICtrlCreateProgress(40, 30, 25, 250,BitOR($PBS_SMOOTH, $PBS_VERTICAL))
GUICtrlSetLimit($slider, 100, 0)
GUICtrlSetData($slider, 50)
GUICtrlSetBkColor(-1, 0x000000)
GUISetState(@SW_SHOW)
$label = GUICtrlCreateLabel("", 80, 0, 50, 50,0x01, $SS_RIGHT)
GUICtrlSetFont(-1, 20, 600)
GUICtrlSetColor(-1, 0xFFFFFF)
$Butup = GUICtrlCreateButton (" + ", 80, 70, 50,50)
GUICtrlSetFont(-1, 20, 600)
$ButMute = GUICtrlCreateButton ("Muet", 80, 120, 50,50)
GUICtrlSetFont(-1, 12, 600)
$Butdown = GUICtrlCreateButton ("-", 80, 170, 50,50)
GUICtrlSetFont(-1, 20, 600)
$Tname = TrayCreateItem("VistaZ V ")
TrayCreateItem("")
$Trayplus = TrayCreateItem ("+")
TrayCreateItem("")
$Traymute = TrayCreateItem("Muet")
TrayCreateItem("")
$Traymin = TrayCreateItem ("-")
TrayCreateItem("")
$Trayexit = TrayCreateItem("Quitter")
TrayCreateItem("")
$TrayAbout = TrayCreateItem("Sébastien Bauval")
maj_gui(-1)
$ON_MUTE = false
While 1
$msg = GUIGetMsg()
$tmsg = TrayGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE or $tmsg = $Trayexit
_Exit()
Case $msg = $Butup or $tmsg = $Trayplus
change_volume(1)
maj_gui(-1)
Case $msg = $ButMute or $tmsg = $Traymute
if $ON_MUTE then
$ON_MUTE=false
maj_gui(-1) ;
else
$ON_MUTE=true
maj_gui(0)
endif
_VolumeMute()
Case $msg = $Butdown or $msg = $Traymin
change_volume(0)
maj_gui(-1)
EndSelect
WEnd
#cs
change_volume($updown,$opt)
opt = true alors le volume changera suivant la valeur de $updown
opt = false
$updown = 0 : on descend le volume de 1 sinon on augmente de 1
#ce
func change_volume($updown=0,$opt=false)
local $vol
if $opt == true Then
$vol=round($updown)
Elseif $updown == 0 Then
$vol = _GetMasterVolumeScalar_Vista() - 1
Else
$vol = _GetMasterVolumeScalar_Vista() + 1
EndIf
If $vol < 0 Then $vol = 0
If $vol > 100 Then $vol = 100
_SetMasterVolumeScalar_Vista($vol)
EndFunc
#cs
maj_gui_slider($val_vol)
$val_col < 0 alors on met à jour l'interface suivant la vlaeur renvoyer par le plugin
sinon c'est une mise à jour manuel avec la valeur de $val_vol en paramétre
#ce
func maj_gui($val_vol=0)
if $val_vol < 0 then $val_vol= _GetMasterVolumeScalar_Vista()
GUICtrlSetData($slider,round($val_vol))
GUICtrlSetData($label,round($val_vol))
EndFunc
Func _VolumeMute()
Send("{VOLUME_MUTE}")
EndFunc ;==>VolumeMute_Vista
Func _Exit()
PluginClose($hDLL)
DllClose($hUserDLL)
Exit
EndFunc
Je ne l'ai pas encore compiler car il va encore evoluer.
Si vous avez des suggestion ou des remarque, allez-y
Liens:
http://www.autoitscript.com/forum/index ... ntry608103
Mise à jours:
Fonction "muet" a été améliorée
Mise a jours de la bar de progression et de label de volume par
VooDoo dans le Gui en appuyant sur Muet 2 fois de suite.(Il a aussi réecrit la structure du script)
Re: [Ex] VistaZ V
Posté : dim. 30 août 2009 12:24
par Voodoo
En voila une présentation manifique qui en fait un poste digne d'être lu
Le plugin et son utilisation sont intéressant, mais tu pourrais utiliser
send("{VOLUME_DOWN}") et
send("{VOLUME_UP}") puis utiliser le plugin juste pour mettre à jour ta progressbar (qui n'est pas correctement initialisé).
Un petit oubli:
devrait être:
pas vrai ?

Re: [Ex] VistaZ V
Posté : dim. 30 août 2009 12:34
par neo2606
Oops c'est vrai que j'ai oublie ça _Exit().
J'ai déjà essayé mais je n'ai pas encore trouvé, je débute seulement. Aurais -tu une suggestion qui pourrai m'aider?
Edit:
Logiquement c'est ici que je dois modifie:
Code : Tout sélectionner
Func _SetVolume($vol)
Local $rvol = Round($vol)
_SetMasterVolumeScalar_Vista($vol)
GUICtrlSetData($slider, $rvol)
GUICtrlSetData($label, $rvol)
If Not $show Then _ProgShow()
If $timer = "" Then
$timer = _Timer_SetTimer($gui, 3000)
Else
$timer = _Timer_SetTimer($gui, 3000, "", $timer)
EndIf
EndFunc
N'est-ce pas?
Re: [Ex] VistaZ V
Posté : dim. 30 août 2009 13:43
par Voodoo
► Afficher le texteCode
Code : Tout sélectionner
#include <GuiConstantsEx.au3>
#include <ProgressConstants.au3>
#include <Timers.au3>
#include <StaticConstants.au3>
Opt("TrayMenuMode",1)
Global $gui, $prog, $label, $th, $show,$timer = ""
Global $hDLL = PluginOpen("vista_vol.dll")
Global $hUserDLL = DllOpen("user32.dll")
$Mp3PlayerGui = GUICreate(" VistaZ V", 150, 300,-1,-1,-1,0x00000080)
GUISetBkColor(0x000000)
$Guipic = GUICtrlCreatePic (@ScriptDir & "\Sound.jpg",0,0,100,300)
$slider = GUICtrlCreateProgress(40, 30, 25, 250,BitOR($PBS_SMOOTH, $PBS_VERTICAL))
GUICtrlSetLimit($slider, 100, 0)
GUICtrlSetData($slider, 50)
GUICtrlSetBkColor(-1, 0x000000)
GUISetState(@SW_SHOW)
$label = GUICtrlCreateLabel("", 80, 0, 50, 50,0x01, $SS_RIGHT)
GUICtrlSetFont(-1, 20, 600)
GUICtrlSetColor(-1, 0xFFFFFF)
$Butup = GUICtrlCreateButton (" + ", 80, 70, 50,50)
GUICtrlSetFont(-1, 20, 600)
$ButMute = GUICtrlCreateButton ("Muet", 80, 120, 50,50)
GUICtrlSetFont(-1, 12, 600)
$Butdown = GUICtrlCreateButton ("-", 80, 170, 50,50)
GUICtrlSetFont(-1, 20, 600)
$Trayplus = TrayCreateItem ("+")
TrayCreateItem("")
$Traymute = TrayCreateItem("Muet")
TrayCreateItem("")
$Traymin = TrayCreateItem ("-")
TrayCreateItem("")
$Trayexit = TrayCreateItem("Quitter")
maj_gui(-1)
While 1
$msg = GUIGetMsg()
$tmsg = TrayGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE or $tmsg = $Trayexit
_Exit()
Case $msg = $Butup or $tmsg = $Trayplus
change_volume(1)
maj_gui(-1)
Case $msg = $ButMute or $tmsg = $Traymute
Send("{VOLUME_MUTE}")
maj_gui(0)
Case $msg = $Butdown or $msg = $Traymin
change_volume(0)
maj_gui(-1)
EndSelect
WEnd
#cs
change_volume($updown,$opt)
opt = true alors le volume changera suivant la valeur de $updown
opt = false
$updown = 0 : on descend le volume de 1 sinon on augmente de 1
#ce
func change_volume($updown=0,$opt=false)
local $vol
if $opt == true Then
$vol=round($updown)
Elseif $updown == 0 Then
$vol = _GetMasterVolumeScalar_Vista() - 1
Else
$vol = _GetMasterVolumeScalar_Vista() + 1
EndIf
If $vol < 0 Then $vol = 0
If $vol > 100 Then $vol = 100
_SetMasterVolumeScalar_Vista($vol)
EndFunc
#cs
maj_gui_slider($val_vol)
$val_col < 0 alors on met à jour l'interface suivant la vlaeur renvoyer par le plugin
sinon c'est une mise à jour manuel avec la valeur de $val_vol en paramétre
#ce
func maj_gui($val_vol=0)
if $val_vol < 0 then $val_vol= _GetMasterVolumeScalar_Vista()
GUICtrlSetData($slider,round($val_vol))
GUICtrlSetData($label,round($val_vol))
EndFunc
Func _Exit()
PluginClose($hDLL)
DllClose($hUserDLL)
Exit
EndFunc
Oui mais la structure du code ne me plaisait pas du coup j'ai changé deux trois trucs, et je me suis permis de virer les fonctions pour l'instant inutiles.
Maintenant ce qui serait bien c'est lors de l'appuie sur "muet" 2 fois, il nous affiche la valeur que l'on avait avant le premier "muet" !
Re: [Ex] VistaZ V
Posté : dim. 30 août 2009 14:36
par neo2606
Woaw, effectivement il y a du changement.
Peut-etre en ajoutant ça:
► Afficher le texte
Code : Tout sélectionner
func maj_gui2($val_vol=0)
if $val_vol > 0 then $val_vol= _GetMasterVolumeScalar_Vista()
GUICtrlSetData($slider,round($val_vol))
GUICtrlSetData($label,round($val_vol))
EndFunc
Non ca ne marche pas je viens de faire un test avant de le poster.
En regardans dans le script ikey j'ai trouvé ceci:
► Afficher le texte
Code : Tout sélectionner
Func _VolumeMute()
Local $ButMute = _SoundGetMasterMute()
If @error Then
Return
EndIf
If $ButMute Then
$Res = _Volume(Round(_SoundGetMasterVolume()))
Else
$Res = 0
EndIf
_SoundSetMasterMute(Not $ButMuteMute)
EndFunc
Ce code si fonctionne pour Ikey, il suffirait de le modifier un peu. Tu en pense quoi?
Voici le lien pour le code source:
http://sites.google.com/site/yashied/Fi ... edirects=0
Re: [Ex] VistaZ V
Posté : dim. 30 août 2009 15:05
par Voodoo
Oui ce bout de code peut remplacer le
send("{VOLUME_MUTE}"). Mais cela n'affectera en rien notre problème qui est en faite un souci d'affichage.
Après le premier appuie sur le bouton "muet", on fait un
maj_gui(0). Et lors du second appuie...c'est la même opération ! Comme nous avons deux opérations pour le même bouton on peut créer une variable globale qui nous indiquera l'état dans lequel on se trouve.
Code : Tout sélectionner
[...]
ON_MUTE = false
While 1
[...]
Case $msg = $ButMute or $tmsg = $Traymute
if ON_MUTE then
ON_MUTE=false
maj_gui(-1) ;
else
ON_MUTE=true
maj_gui(0)
endif
_fonction_qui_mute()
[...]
Wend
[...]
Re: [Ex] VistaZ V
Posté : dim. 30 août 2009 15:36
par neo2606
ça me donne que des erreur: "Error parsing function call" pour
et aussi pour
Ou alors ce moi qu'il ai mal integré dans mon script

Re: [Ex] VistaZ V
Posté : dim. 30 août 2009 15:38
par Voodoo
J'ai oublié les
$ devant ON_MUTE

Re: [Ex] VistaZ V
Posté : dim. 30 août 2009 15:44
par neo2606
En faite la fonction que j'ai posté n'était pas la bonne, voici la bonne fonction:
► Afficher le texte
Code : Tout sélectionner
Func VolumeMute_Vista()
If $Plugin < 0 Then
Return
EndIf
Local $ButtonMute = _IsMute_Vista()
If @error Then
Return
EndIf
If $Mute Then
$Res = _Volume(Round(_GetMasterVolumeScalar_Vista()))
Else
$Res = 0
EndIf
_SetMute_Vista(Not $Mute)
$Go = 1
EndFunc ;==>VolumeMute_Vista
Re: [Ex] VistaZ V
Posté : dim. 30 août 2009 16:03
par neo2606
VooDoo a écrit :J'ai oublié les
$ devant ON_MUTE

Ah voila pour quoi ca ne fonctionnait pas!
Pour la fonction mute j'ai decide de faire tres, tres ,tres simple:
Tout fonctionne a merveille
Merci pour ton aide
Edit :
Je vais m'etre mon premier post a jours!
Re: [Ex] VistaZ V
Posté : lun. 31 août 2009 00:05
par Tlem
@neo2606
Il est inutile de cliquer 'Citer' à chacun de vos messages, surtout si il n'y à aucun message intermédiaire...
Éventuellement reprenez uniquement l'essentiel ou la partie concernée.
Re: [Ex] VistaZ V
Posté : mar. 01 sept. 2009 11:48
par neo2606
@Tlem
Pas de souci, c'est une mauvaise habitude que j'ai de toujours citer.

Re: [Ex] VistaZ V
Posté : dim. 28 févr. 2010 13:30
par pierrotm777
pourriez vous m'expliquer ce que veux dire la commande $dt0 = Number(Not($dt0))
merci

Re: [Ex] VistaZ V
Posté : dim. 28 févr. 2010 21:00
par Tlem
Hé bien je dirait :
Not($dt0) renvoi une condition
false ou
true (vrai ou faux) et
Number(Not($dt0)) tranforme cette condition en nombre 0 ou 1.

Re: [Ex] VistaZ V
Posté : lun. 01 mars 2010 13:47
par pierrotm777
Merci Tlem