Page 1 sur 1
[R] Action pour les menus déroulants
Posté : mer. 17 oct. 2007 06:04
par Daxou
Bonjour,
Voila pour gagner du temps dans mes recherche de programme dans mon menu démarrer, dans mes favoris internet ... ( et accessoirement pour passer le temps vu que je m'ennuies ) j'essaye de créer une Interface avec des Onglets ( ça c'est bon ) et dans chaque onglet j'ai intégré un menu déroulant ( ça aussi c'est bon... merci l'aide ^^ )
Le truc c'est que j'aimerai bien que quand je choisi une application dans le menu déroulant et que je clique sur OK, bah ça lance l'application ...
donc pour le moment j'ai ça que j'ai récupéré dans l'aide et un peu modifié :
Code : Tout sélectionner
GUICreate("Powered by Daxou",250,150)
GUISetBkColor(0x00E0FFFF)
GUISetFont(9, 300)
$tab=GUICtrlCreateTab (10,10, 200,100)
$tab0=GUICtrlCreateTabitem ( "Applications")
GUICtrlCreateLabel ("Choix ?", 30,80,50,20)
$tab1combo=GUICtrlCreateCombo ("", 20,50,120,120)
GUICtrlSetData(-1,"Bloc note|FireFox|ThunderBird|Emule|Filezilla|PhotoShop|Paint|NetLimiter|VLC", "Bloc note")
$tab1OK=GUICtrlCreateButton ("Go!", 150,50,50,20)
GUICtrlCreateTabitem ("")
GUICtrlCreateLabel ("Click on tab and see the title", 20,130,250,20)
GUISetState ()
Comment je fais pour que quand je choisi par exemple FireFox dans le menu déroulant, il se lance quand je clique sur Go!
Merci de m'aiguiller un peu
Bonne journée
Posté : mer. 17 oct. 2007 06:41
par Vins83
tu peux suivre cet exemple qui me sert a redémarrer,arreter l'ordi ou arreter mon programme..
Code : Tout sélectionner
; Redemarrer
GUICtrlCreateGroup ( " Que voulez vous faire après la défragmentation ? " , 5 , 433 , 255 , 45 )
$shutdownisrunningoptimiser = GUICtrlCreateCombo ( " " , 10 , 448 , 245 , 20 )
$Shutdownoptimiser = GUICtrlSetData ( - 1 , " Arreter l ordinateur|redémarrer l ordinateur|Fermer AngelDefrag " , " Fermer AngelDefrag " )
;Fonction Shutdownoptimiser
Func _shutdownnettoyer ( )
$Shutdownoptimiser = GUICtrlRead ( $shutdownisrunningoptimiser )
Switch $Shutdownoptimiser
Case 'Arreter l ordinateur' Shutdown ( 1 )
Case 'redémarrer l ordinateur' Shutdown ( 2 )
Case 'Fermer AngelDefrag' Exit
EndSwitch
EndFunc ; == >_shutdownnettoyer
Posté : mer. 17 oct. 2007 11:13
par Voodoo
Voila Voili Voilou:
Code : Tout sélectionner
#include <guiconstants.au3>
GUICreate ( " Powered by Daxou " , 250 , 150 )
GUISetBkColor ( 0x00E0FFFF )
GUISetFont ( 9 , 300 )
$tab = GUICtrlCreateTab ( 10 , 10 , 200 , 100 )
$tab0 = GUICtrlCreateTabitem ( " Applications " )
GUICtrlCreateLabel ( " Choix ? " , 30 , 80 , 50 , 20 )
$tab1combo = GUICtrlCreateCombo ( " " , 20 , 50 , 120 , 120 )
GUICtrlSetData ( - 1 , " Bloc note|FireFox|ThunderBird|Emule|Filezilla|PhotoShop|Paint|NetLimiter|VLC " , " Bloc note " )
$tab1OK = GUICtrlCreateButton ( " Go! " , 150 , 50 , 50 , 20 )
GUICtrlCreateTabitem ( " " )
GUICtrlCreateLabel ( " Click on tab and see the title " , 20 , 130 , 250 , 20 )
GUISetState ( )
While 1
$msg = guigetmsg ( )
Select
case $msg = $GUI_EVENT_CLOSE
Exit
Case $msg = $tab1OK
msgbox ( 0 , " e " , guictrlread ( $tab1combo ) )
EndSelect
WEnd
Apres avoir crée tes gui, tu dois mettre une boucle ensuite pour que le programme ne s'arrête pas et détruise tes fenêtres.
Puis, Il faut "capter" les opérations faite sur ta fenêtre; sa c'est le
guigetmsg(). Quand tu vas appuyer sur le boutton ' ok ', le programme va modifier la valeur de
$msg. Donc si
$msg=$tab1ok alors il faut lire le choix dans le combo. Et sa c'est le
guictrlread qui s'en charge.
Enfin, le script ne sait pas ou sont les programmes donc il faut les defenir. Dans un fichier ini par exemple, maintenant que ont à le choix c'est facile !
Posté : mer. 17 oct. 2007 23:35
par Daxou
Merci a vous, je vais essayer ca !
mais pour etre honnete je suis novice dans j'ai pas tout percuté !
donc je vais bidouiller et si je stagne je vous tiens au courant
Merci
Posté : jeu. 18 oct. 2007 01:14
par Daxou
Bon je patoge ...
J'ai remplacer ca :
VooDoo a écrit :Code : Tout sélectionner
While 1
$msg = guigetmsg ( )
Select
case $msg = $GUI_EVENT_CLOSE
Exit
Case $msg = $tab1OK
msgbox ( 0 , " e " , guictrlread ( $tab1combo ) )
EndSelect
WEnd
Par ca ( diference flagrante ... -_-' ) :
Code : Tout sélectionner
While 1
$msg = guigetmsg ("Bloc note")
Select
case $msg = $GUI_EVENT_CLOSE
Exit
Case $msg = $tab1OK
run("C:\WINDOWS\notepad.exe")
EndSelect
WEnd
Donc quand je clique Go! ca lance Bloc note
mais si je choisi firefox ... ca lance quand meme bloc note !
normal en meme temps ...
Je me suis dit que j'allai refaire la meme chose en desous mais en remplacant BLOC NOTE par FIREFOX et en remplacant aussi les chemins d'acces ( forcement.. )
mais ca lance toujour bloc note
Chuis un boulet ... j'assume !

merci
Posté : jeu. 18 oct. 2007 06:42
par Vins83
Sa devrait ressembler a ça:
Code : Tout sélectionner
Case 'bloc note' run ( " C:\Windows\blocnote.exe " )
Case 'Firefox' run ( " C:\ProgramFiles\Mozilla Firefox\Firefox.exe " )
Posté : jeu. 18 oct. 2007 07:15
par Daxou
Ca j'ai compris, mais le truc c'est que je sais pas ou les mettre ^^
si je mets ca :
Code : Tout sélectionner
While 1
$msg = guigetmsg ( )
Select
case $msg = $GUI_EVENT_CLOSE
Exit
Case 'bloc note' run ("C:\WINDOWS\notepad.exe")
Case 'Firefox' run ("C:\Program Files\Mozilla Firefox\firefox.exe")
EndSelect
WEnd
quand je teste ca m'ouvre la fenetre avec le menu mais ca la referme tout de suite et ca me lance le notepad ...
Chuis dsl de vous enquiquiner avec ca mais mes connaissance dans ce dommaine sont bien piètre ...
merci en tout cas

Posté : jeu. 18 oct. 2007 08:12
par Tlem
Si vous adapter la fonction de Vins83
Code : Tout sélectionner
;Fonction Shutdownoptimiser
Func _shutdownnettoyer ( )
$Shutdownoptimiser = GUICtrlRead ( $shutdownisrunningoptimiser )
Switch $Shutdownoptimiser
Case 'Arreter l ordinateur' Shutdown ( 1 )
Case 'redémarrer l ordinateur' Shutdown ( 2 )
Case 'Fermer AngelDefrag' Exit
EndSwitch
EndFunc ; == >_shutdownnettoyer
Vous devez d'abord lire la valeur à surveiller : $Shutdownoptimiser = GUICtrlRead ( $shutdownisrunningoptimiser )
En remplacent la lecture de $shutdownisrunningoptimiser par la lecture de $tab1combo.
Puis en utilisant Switch, vous gérer les conditions.
Code : Tout sélectionner
Switch $MaValeur
Case 'Valeur de controle 1'
Action 1
Case 'Valeur de controle 2'
Action2
Case 'Valeur de controle 3'
Action 3
Case Else
Action Si aucune condition n'est valable.
EndSwitch
évidement, cette action doit être effectuée lorsque vous cliquer sur OK, et donc doit être placée dans votre boucle While en réponse au clic sur OK.
Posté : jeu. 18 oct. 2007 08:57
par Daxou
Merci bien, je teste ça dès que possible !
Je sens que ça commence à rentrer ! ( enfin je crois )
Bonne journée à tous
Posté : jeu. 18 oct. 2007 13:11
par ani
Hello
Petit point important ... (non pas cela ^^')
Lors d'un post si vous répondez et que l'utilisateur indique du code, continuer avec le code énnoncé svp (n'oubliez pas les débutants) (je dis çà pour @VINS83

) , indiquer une solution possible ou metter l'utilisateur sur le chemin de la réponse.
Merci d'avance pour vous, et pour eux
que le partage soit de rigueur
