Hallo
Wie kann ich den Text des zuletzt angeklickten MenuItems ermitteln?
Die Items haben keine Variable.
MenuItem: Text lesen?
-
- [ gelöst ]
-
Uwe -
10. März 2010 um 09:11 -
Geschlossen -
Erledigt
-
-
erstmal: Herzlich willkommen im Forum
wieso gibts du den items nich einfach eine variable?
wäre doch das leichterste. und wieso willt du den text lesen?häng am besten dein script zur veranschaulichung an
-
Ich habe einen Ordner voller Dateien. Die Dateinamen sind nun im Item-Text sichtbar.
ich habe nun 5 Menüs von dieser Art.
Wenn ich auf ein Item klicke, brauche ich den Namen (Text) von diesem Item, um diese Datei zu starten.
Wenn es geht, möchte ich keine Variablen beim anlegen der Items verwenden.
Aus diesem Grunde wäre es toll, wenn ich mit Hilfe der ID des Items den Text herausbekommen könnte. -
Hast du _GUICtrlMenu_GetItemText schon versucht?
-
Ja, aber funktioniert nicht.
Habe es mit Hilfe von @GUI_CtrlId versucht -
Du benutzt schon den OnEventModus oder?
ansonsten bringt @GUI_Ctrlid nämlich nichts -
Damit kannst du sicher was anfangen:
Spoiler anzeigen
[autoit]#include <WindowsConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#Include <GuiMenu.au3>
Opt("GUIOnEventMode", 1)
GUICreate("Test")
GUISetOnEvent(-3, "_Exit")
GUIRegisterMsg($WM_MENUSELECT, "WM_MENUSELECT")$Menu = GUICtrlCreateMenu("Menü1")
[/autoit] [autoit][/autoit] [autoit]
For $i = 1 To 20
GUICtrlCreateMenuItem("Test" & $i , $Menu)
Next
GUISetState()
While 1
Sleep(10000)
WEndFunc _Exit()
[/autoit]
Exit
EndFunc
Func WM_MENUSELECT($hwnd, $iMsg, $iwParam, $ilParam)
Local $menuId, $aResult
$menuId = BitAND($iwParam, 0xFFFF)
$aResult = DllCall("User32.dll", "int", "GetMenuString", "hwnd", $ilParam, "int", $menuId, "str", 0, "int", 4096, "int", 0x0)
If $menuId = 0 And $ilParam = 0x000000 Then Return ConsoleWrite("Menüleiste wurde geschlossen" & @CRLF)
ConsoleWrite($aResult[3] & @CR)
Return "GUI_RUNDEFMSG"
EndFunc ;==>WM_MENUSELECT -
Vielen Dank funkey, das ist die Lösung meines Problems.
Wie kann ich nun diesen Beitrag als gelöst deklarieren?
(bin neu hier, dies war mein erster Beitrag) -
Hallo Uwe,
herzlich willkommen im Forum.
Du setzt dein Thema auf gelöst indem du den 1. Beitrag bearbeitest, dort den Präfix auf gelöst stellst nd danach den Beitrag wieder absendest,mfg (Auto)Bert