[Ex] Exemple d'utilisation du menu popup des Msagents
Posté : lun. 28 avr. 2008 21:07
Bonjour,
depuis que j'ai vu quelque exemple de script avec les Msagents (merlin, ...) j'ai regardé de plus prêt et me suis heurté à la difficulté du menu contextuel. Maintenant que j'ai "vaincu la bête" voici le B-A BA de "comment faire un menu avec les MSagents"
depuis que j'ai vu quelque exemple de script avec les Msagents (merlin, ...) j'ai regardé de plus prêt et me suis heurté à la difficulté du menu contextuel. Maintenant que j'ai "vaincu la bête" voici le B-A BA de "comment faire un menu avec les MSagents"
Code : Tout sélectionner
$strAgentName = "merlin"
$strAgentPath = @WindowsDir&"\Msagent\Chars\" & $strAgentName & ".acs"
$Obj1 = ObjCreate("Agent.Control.2")
$Obj1.Connected = -1
$Obj1.Characters.Load ($strAgentName, $strAgentPath)
if @error then exit
$objCharacter = $obj1.Characters.Character($strAgentName)
$objCharacter.MoveTo(200, 200, 0)
$objCharacter.LanguageID = 2057
$objCharacter.Balloon.Style = 7;0 ballone text off
$objCharacter.Show
;ici on va s'enregistrer auprès des callbacks de type event de l'agent
$objEvent=ObjEvent($Obj1,"AgentEvents_")
ConsoleWrite("setevent="&@error&@CRLF)
;là on insère la ligne pour lancer le bloc notes à partir du menu popup de l'agent
$objCharacter.Commands.Add("notepadId","lancer notepad","",True,True)
;idem pour exit
$objCharacter.Commands.Add("exitId","Quitter","",True,True)
; on lui dit maintenant d'écouter
;$objCharacter.Listen("TRUE")
While 1
Sleep(200)
WEnd
;implémentation de la surcharge à la fonction d'évènement de Commande (le clic dans le menu)
;le premier argument est un objet gérer par l'agent
Func AgentEvents_Command($userinput="")
Local $ui=$userinput
Local $fct
;Si $userinput, donc ui est un objet alors on continue
If IsObj($ui) Then
$fct=$ui.Name ; récupération de l'Id de l'item du menu cliqué
Else
Return
EndIf
; maintenant on lance les différentes action en fonction du nom récupéré
Switch ($fct)
Case "notepadId"
Run("Notepad.exe")
Case "exitId"
Exit 0
Case Else
Return
EndSwitch
EndFunc