[R] Ajouter événements à menu créé ds GUI externe

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

[R] Ajouter événements à menu créé ds GUI externe

#1

Message par SagePourpre »

Bonjour à tous, peuple Autoit.

Je sollicite aujourd'hui la base de connaissance de la "Ruche" afin
de solutionner un petit tracas qui me perturbe depuis un bon moment
déjà. N'ayant trouvé de réponses satisfaisante, je me tourne vers vous,
dans l'espoir d'une piste prometteuse.

Voici mon soucis : Dans ce tout petit script que voilà ci-dessous, j'affiche de
façon fructueuse un nouveau menu dans ScITe intitulé : Autoit ( J'ai fais dans
l'originalité aujourd'hui ).

Son seul item dont la dénomination banale "Item 1" est bien affiché lorsque l'on
clique sur le menu.

Cependant, et c'est là tout mon désarroi, je ne parviens pas à lui assigner
un événement. J'ai suivi une piste utilisant $WM_COMMAND mais le résultat
est infructueux.

Y'aurait-il quelqu'un pour comprendre mon erreur avec l'amabilité de me partager
son opinion éclairée ?

Une piste, un indice, une réponse bien cuite ?
Je suis ouvert à tout cela...



Code : Tout sélectionner

#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>
#include <GuiMenu.au3>
#include <GuiConstantsEx.au3>
Opt('GuiOnEventMode',1)
; '[CLASS:SciTEWindow]'


;GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

$hWnd = WinGetHandle('[CLASS:SciTEWindow]')
$hMain = _GUICtrlMenu_GetMenu($hWnd)

Local Enum $iditem1 = 100000
$hMenu = _GUICtrlMenu_CreateMenu()
_GUICtrlMenu_InsertMenuItem($hMenu,0,'Item 1',$iditem1)


_GUICtrlMenu_InsertMenuItem($hMain, 9, "&AutoIt", 0, $hMenu)

_GUICtrlMenu_DrawMenuBar($hWnd)

$dll = DllOpen('user32.dll')
While Not _IsPressed(23,$dll)
    Sleep(100)
WEnd

#cs
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    ConsoleWrite($hWnd & @CRLF)
    Switch _WinAPI_LoWord ($iwParam)
        Case $iditem1
            MsgBox(0,'','')

    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND
#ce


DllClose($dll)
_GUICtrlMenu_RemoveMenu($hMain,9)
 
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Ajouter événements à menu créé ds GUI externe

#2

Message par Tlem »

Si c'est pour ajouter un menu à Scite, il y a plus simple. ;)
http://www.autoitscript.com/forum/index ... opic=53284

Sinon si c'est pour n'importe quelle autre application, je n'ai pas de solution toute faite, mais quelques os à ronger. ;)
- http://www.autoitscript.com/forum/index ... opic=44796
- http://www.autoitscript.com/forum/index ... opic=47066
- http://www.autoitscript.com/forum/index ... opic=56536

Bon appétit. :lol:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [..] Ajouter événements à menu créé ds GUI externe

#3

Message par SagePourpre »

L'objectif présent est bien d'ajouter un menu dans ScITe, cependant, afin
de rendre l'expérience intéressante et riche d'apprentissage, je me dois
d'utiliser une méthodologie dont la récursivité infaillible me servira au gré
de mes fantaisies les plus abstraites.

La première proposition semble échouer à ce constat.

J'observerai donc les autres voies possible dont vous m'avez
indiqué le chemin, même si un premier constat semble indiquer
que ma quête ne fait que débuter.

Ceci dit, il ne faut jamais se lancer à l'aventure sous le joug
de la fatigue. Je poursuivrai donc le combat dès l'aube.

Nous vaincrons !
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [..] Ajouter événements à menu créé ds GUI externe

#4

Message par SagePourpre »

J'ai finalement trouvé une solution acceptable à l'aide du dernier lien
que vous m'avez fourni.

"Easy shell hooking example" ( le dernier lien ) contient une solution acceptable utilisant
une hook de la souris afin de détecter le clic sur un élément de menu.

http://www.autoitscript.com/forum/index ... t&p=747017



Merci encore !
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Répondre