AutoIt программа, пункты меню создаются автоматически из Ini-файла, поэтому я не знаю их ID.
Как при клике на пункт меню узнать название этого пункта и название самого меню.
Например, при выборе: Файл->подменю1 мне нужно узнать что был выбран "Файл" и "подменю1"
Как при клике на пункт меню узнать название этого пункта и название самого меню.
Например, при выборе: Файл->подменю1 мне нужно узнать что был выбран "Файл" и "подменю1"
Код:
; Библиотеки
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
; Настройки
$KatDef=@ScriptDir
$IniConfig=$KatDef&'\config.ini'
; Для примера
$hFile=FileOpen('config.ini',2)
FileWriteLine($hFile,'[Файл]')
FileWriteLine($hFile,'подменю1=команда1')
FileWriteLine($hFile,'подменю2=команда2')
FileWriteLine($hFile,'[Правка]')
FileWriteLine($hFile,'подменю1=команда3')
FileClose($hFile)
; Чтение Ini
If not FileExists($IniConfig) Then Exit MsgBox(16,'Внимание','Файл настроек не найден'&@CRLF&$IniConfig)
$aAllSection=IniReadSectionNames($IniConfig)
If @error Then Exit MsgBox(16,'Внимание','Файл настроек пуст'&@CRLF&$IniConfig)
; GUI
$Form1 = GUICreate("form1", 735, 546, -1, -1, BitOR($GUI_SS_DEFAULT_GUI,$WS_SIZEBOX,$WS_THICKFRAME))
; Строим пункты меню
For $i=1 To $aAllSection[0]
$Menu = GUICtrlCreateMenu('&'&$aAllSection[$i])
; Строим Подменю
$aSection=IniReadSection($IniConfig,$aAllSection[$i])
If @error Then ContinueLoop
For $j=1 To $aSection[0][0]
$SubMenu = GUICtrlCreateMenuItem($aSection[$j][0], $Menu)
Next
Next
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd