Traymenu survol et clic droit

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
marro
Niveau 1
Niveau 1
Messages : 8
Enregistré le : dim. 12 juin 2016 18:32
Status : Hors ligne

Traymenu survol et clic droit

#1

Message par marro »

Bonsoir,

J'ai réussi à trouver toutes les fonctions que je veux pour mon traymenu, mais je bloque sur 1 point.
En cherchant sur le forum j'ai trouvé le code de mikell qui correspond a ce que je veux avec une différence:

code de mikell:

1 menu sur clic droit
1 menu sur clic gauche

Moi j'aimerai:

1 menu au survol de l’icône
1 menu au clic droit

le code de mikell que j'ai trouver c'est:
[codeautoit]#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[/codeautoit]

Le code que j'ai fais grâce a la doc:
[codeautoit]#NoTrayIcon
#include <MsgBoxConstants.au3>
#include <TrayConstants.au3> ; Nécessaire pour les constantes $TRAY_EVENT_PRIMARYDOUBLE, $TRAY_EVENT_SECONDARYUP et $TRAY_ICONSTATE_SHOW.
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>

Opt("TrayMenuMode", 3) ; Les items du menu, par défaut, ne seront pas affichés et les items ne seront pas cochés lorsqu'ils seront sélectionnés. Ce sont les options 1 et 2 de TrayMenuMode.
Opt("TrayOnEventMode", 1) ; Active TrayOnEventMode.

Example()

Func Example()
Menu()
;TraySetOnEvent($TRAY_EVENT_PRIMARYUP, "TrayEvent")
TraySetOnEvent($TRAY_EVENT_SECONDARYUP, "TrayEvent")

TraySetState($TRAY_ICONSTATE_SHOW) ; Affiche le menu de la zone de
TraySetClick(64) ; Ouvre le menu au survole de l'icone du traymenu


While 1
Sleep(100) ; Une boucle d'inactivité.
WEnd
EndFunc ;==> Example

Func TrayEvent()
Switch @TRAY_ID ; Teste le dernier identifiant de l'item.
Case $TRAY_EVENT_PRIMARYUP
; Affiche une boîte de message à propos de la version et du chemin d'installation de l'exécutable AutoIt.
;MsgBox($MB_SYSTEMMODAL, "", "AutoIt tray menu example.") ; Trouve le dossier d'un chemin d'accès complet.

Case $TRAY_EVENT_SECONDARYUP
;MsgBox($MB_SYSTEMMODAL, "", "The secondary mouse button was released on the tray icon.")
Config()

EndSwitch
EndFunc ;==> TrayEvent

Func Menu()

TrayCreateItem("Menu1")

TrayCreateItem("Menu2")

TrayCreateItem("Menu3")
EndFunc

Func Config()

TrayCreateItem("Configuration2")

TrayCreateItem("") ; Crée une ligne de séparation.

TrayCreateItem("About2")

TrayCreateItem("") ; Crée une ligne de séparation.

TrayCreateItem("Exit2")
TrayItemSetOnEvent(-1, "ExitScript")
EndFunc

Func ExitScript()
Exit
EndFunc ;==> ExitScript[/codeautoit]

J'ai comme l'impression qu'il y a confit a faire coabiter c'est deux etats, non?
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: Traymenu survol et clic droit

#2

Message par orax »

Peut-être que quelqu'un aura une solution, mais, en fait, je me demande si c'est vraiment une bonne idée d'avoir le menu qui s'affiche lors du survol de la souris. Le problème, c'est que si la souris survole l'icône par le bas, alors le menu cache complètement l'icône, et, comme elle se retrouve masquée, on ne peut plus cliquer dessus.
Une autre solution serait de créer une mini GUI lors du survol de l'icône. Cette GUI s'afficherait près de la souris, mais sans masquer l'icône. Par contre, je n'ai jamais essayé de faire ça, donc je ne sais pas si l'idée est bonne.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
marro
Niveau 1
Niveau 1
Messages : 8
Enregistré le : dim. 12 juin 2016 18:32
Status : Hors ligne

Re: Traymenu survol et clic droit

#3

Message par marro »

Ah oui c'est une bonne idée, ça me plais bien.
Ça veux dire que lorsque je survol l’icône du traymenu j'appelle un autre fichier guiMonMenu.au3 que j'aurai crée avec l'application pour crée des interfaces graphique.
C'est bien ça?
Ça veux dire aussi que je peu utiliser le même principe pour le menu du clic droit?

Je vais chercher dans ce sens, merci pour ton aide orax ça m'aiguille bien, enfin si j'ai bien tous saisis ^^
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: Traymenu survol et clic droit

#4

Message par orax »

Je pense que t'as compris ce que je voulais dire. Mon idée est de faire quelque chose comme le Centre de maintenance sur Windows. Quand on clique sur l'icône, une petite interface s'affiche au dessus de la barre des tâches. :arrow: http://www.aidewindows.net/win8/maintenance.php#acces
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
marro
Niveau 1
Niveau 1
Messages : 8
Enregistré le : dim. 12 juin 2016 18:32
Status : Hors ligne

Re: Traymenu survol et clic droit

#5

Message par marro »

oui ok c'est bien ce que je pensais.
Je vais essayer de faire quelque chose et poste ici
Répondre