Page 1 sur 1
[R] Créer un menu au clic droit et un autre au clic gauche
Posté : lun. 01 juil. 2013 14:54
par Utilisateur 4989 supprimé
Bonjour,
j'ai créé un script qui fait que quand on clique sur son icône dans les icônes de notification, un menu apparaît au clic droit. Mais je souhaiterais aussi faire un autre menu au clic gauche. J'ai pu faire uniquement une fenêtre lors du clic gauche, mais pas de deuxième menu. Comment faire ?
En fait, je souhaite faire un menu au clic droit avec toutes les fonctionnalités que j'y affecterai, et un menu différent au clic gauche avec un bouton fermer.
► Afficher le textemon code
Code : Tout sélectionner
#include <Constants.au3>
HotKeySet("{PAUSE}", "_Exit")
Opt("TrayOnEventMode", 1)
Opt("TrayMenuMode", 1)
TrayCreateItem("Menu")
TrayItemSetOnEvent(-1, "Droite")
TraySetOnEvent($TRAY_EVENT_PRIMARYUP, "Gauche")
TraySetClick(16)
TraySetState()
While 1
Sleep(10)
WEnd
Func Gauche()
MsgBox(0, "Gauche", "Gauche")
EndFunc
Func Droite()
MsgBox(0, "Droite", "Droite")
EndFunc
Func _Exit()
Exit
EndFunc
Merci d'avance pour votre aide.
Re: [..] Créer un menu au clic droit et un autre au clic gau
Posté : mar. 02 juil. 2013 03:48
par TopXm
Hello
► Afficher le texteTrayMenu
Code : Tout sélectionner
#include <constants.au3>
#include <Misc.au3>
Opt("TrayMenuMode", 1)
Opt("TrayOnEventMode", 1) ;0=disable, 1=enable
Global $traymode = "Primary", $Item1, $Item2
$Item1 = TrayCreateItem("Item 1")
TrayItemSetOnEvent(-1, "_Tray")
$Item2 = TrayCreateItem("Item 2")
TrayItemSetOnEvent(-1, "_Tray")
$exit = TrayCreateItem("Exit")
TrayItemSetOnEvent(-1, "_Tray")
TraySetClick(18)
TraySetState()
Exit _Main()
Func _Main()
While Sleep(10)
If _IsPressed("01") Then
$traymode = "Primary"
TrayItemSetText($Item1, $traymode & " 1")
TrayItemSetText($Item2, $traymode & " 2")
EndIf
If _IsPressed("02") Then
$traymode = "Secondary"
TrayItemSetText($Item1, $traymode & " 1")
TrayItemSetText($Item2, $traymode & " 2")
EndIf
WEnd
EndFunc ;==>_Main
Func _Tray()
TrayItemSetState(@TRAY_ID, $TRAY_UNCHECKED)
Local $Text
Switch @TRAY_ID & $traymode
Case $Item1 & "Primary"
$Text = "Primary 1"
Case $Item1 & "Secondary"
$Text = "Secondary 1"
Case $Item2 & "Primary"
$Text = "Primary 2"
Case $Item2 & "Secondary"
$Text = "Secondary 2"
Case Else
Exit MsgBox(262144, "", @LF & " Exit" & @LF, 1)
EndSwitch
MsgBox(262144, "", @LF & $Text & " pressed" & @LF, 2)
EndFunc ;==>_Tray
Je n'ai absolument rien inventé, juste un copié / collé de ce topic :
http://www.autoitscript.com/forum/topic ... try1051922
Re: [..] Créer un menu au clic droit et un autre au clic gau
Posté : mar. 02 juil. 2013 10:44
par Utilisateur 4989 supprimé
Merci beaucoup, c'est ce que je cherchais, mais je n'avais pas trouvé.
J'ai simplifié le code à ceci :
► Afficher le texte
Code : Tout sélectionner
#include <constants.au3>
#include <Misc.au3>
Opt("TrayMenuMode", 1)
Opt("TrayOnEventMode", 1)
Global $Item1 = TrayCreateItem("Item 1")
TrayItemSetOnEvent(-1, "_Tray1")
Global $Item2 = TrayCreateItem("Item 2")
TrayItemSetOnEvent(-1, "_Tray2")
Global $exit = TrayCreateItem("Exit")
TrayItemSetOnEvent(-1, "_Exit")
TraySetClick(18)
TraySetState()
While Sleep(10)
If _IsPressed("01") Then
TrayItemSetText($Item1, "g1")
TrayItemSetText($Item2, "g2")
EndIf
If _IsPressed("02") Then
TrayItemSetText($Item1, "d1")
TrayItemSetText($Item2, "d2")
EndIf
WEnd
Func _Tray1()
MsgBox(0, "", "tray1")
EndFunc
Func _Tray2()
MsgBox(0, "", "tray2")
EndFunc
Func _Exit()
Exit
EndFunc
Le problème est que ce code donne 3 items au clic gauche et également 3 items au clic droit. Ce que je souhaiterais c'est avoir 3 items au clic droit, et 1 seul au clic gauche qui serait le bouton fermer.
Comment faire ? J'ai essayé de modifier le code, mais je n'y arrive pas.
Re: [..] Créer un menu au clic droit et un autre au clic gau
Posté : mar. 02 juil. 2013 14:17
par mikell
Dans ce cas seule solution construire/supprimer le menu à chaque clic
► Afficher le texte
Code : Tout sélectionner
#include <constants.au3>
#include <Misc.au3>
Opt("TrayMenuMode", 1)
Opt("TrayOnEventMode", 1)
TraySetClick(18)
TraySetOnEvent($TRAY_EVENT_PRIMARYDOWN, "SpecialEvent")
TraySetOnEvent($TRAY_EVENT_SECONDARYDOWN, "SpecialEvent")
TraySetState()
Global $exit, $Item1, $Item2
While 1
Sleep(10)
WEnd
Func SpecialEvent()
Select
Case @TRAY_ID = $TRAY_EVENT_PRIMARYDOWN
Delete()
$exit = TrayCreateItem("Exit")
TrayItemSetOnEvent(-1, "_Exit")
Case @TRAY_ID = $TRAY_EVENT_SECONDARYDOWN
Delete()
$Item1 = TrayCreateItem("Item 1")
TrayItemSetOnEvent(-1, "_Tray1")
$Item2 = TrayCreateItem("Item 2")
TrayItemSetOnEvent(-1, "_Tray2")
$exit = TrayCreateItem("Exit")
TrayItemSetOnEvent(-1, "_Exit")
EndSelect
EndFunc
Func Delete()
TrayItemDelete ($exit)
TrayItemDelete ($Item1)
TrayItemDelete ($Item2)
EndFunc
Func _Tray1()
MsgBox(0, "", "tray1")
EndFunc
Func _Tray2()
MsgBox(0, "", "tray2")
EndFunc
Func _Exit()
Exit
EndFunc
Re: [..] Créer un menu au clic droit et un autre au clic gau
Posté : ven. 05 juil. 2013 10:03
par Utilisateur 4989 supprimé
Merci beaucoup, c'est exactement ce qu'il me fallait.
Sujet résolu.