vicbox777

Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: Всем здрасти, есть вопросик. Вот я сделал меню в трее с разделами типа Офис, в нутри него разные офисные приложения (Калькулятор, блокнот, Word, Excel) в общем таких разделов 3 и все под разные задачи. Ниже всех разделов есть два пункта (О программе) и (Выход) Необходимо добавить 4-ый РАЗДЕЛ, но чтобы он был по умолчанию НЕАКТИВНЫМ, а выбирая пункт меню (О программе) в котором есть поле для ввода пароля, ввести пароль (допустим 12345), становилось АКТИВНЫМ. Но после перезапуска программы снова было НЕАКТИВНЫМ. Подскажите как такую штуку реализовать ??? | Вот примерно так: Код: #NoTrayIcon #include <ModernMenuRaw.au3> #include <GUIConstants.au3> ;создание окна о программе $Form = GUICreate("О программе", 267, 186, 193, 178) $Pas_Input = GUICtrlCreateInput("", 56, 144, 113, 21) $Label1 = GUICtrlCreateLabel("Открыть дополнительные функции", 0, 120, 264, 20) GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif") $Label2 = GUICtrlCreateLabel("Пароль ", 0, 144, 56, 20) GUICtrlSetFont(-1, 10, 400, 2, "MS Sans Serif") $Ok_Button = GUICtrlCreateButton("Ок", 176, 144, 89, 20, 0) $Exit_Button = GUICtrlCreateButton("Выход", 0, 168, 265, 17, 0) GUISetState(@SW_HIDE,$Form) $hTrayIcon = _TrayIconCreate("My Tray App") _TrayIconSetClick(-1, 16) _TrayIconSetState() $nTrayMenu = _TrayCreateContextMenu() $Offis_Traymenu = _TrayCreateMenu("Оффис") _TrayItemSetIcon(-1, "", 0) $Calc_TrayItem = _TrayCreateItem("Калькулятор", $Offis_Traymenu, -1, 1) _TrayItemSetIcon(-1, "calc.exe", 0) $Word_TrayItem = _TrayCreateItem("MS Word",$Offis_Traymenu, -1,1) _TrayItemSetIcon(-1, @ProgramFilesDir &"\Microsoft Office\Office12\WINWORD.EXE", 0) $Notepad_TrayItem = _TrayCreateItem("Блокнот", $Offis_Traymenu, -1,1) _TrayItemSetIcon(-1, "notepad.exe", 0) $Other_Traymenu = _TrayCreateMenu("Разное") _TrayItemSetIcon(-1, "", 0) GUICtrlSetState( $Other_Traymenu,$GUI_DISABLE ) $CmdLine_TrayItem = _TrayCreateItem("Коммандная строка", $Other_Traymenu, -1,1) _TrayItemSetIcon(-1, "cmd.exe", 0) $MSPaint_TrayItem = _TrayCreateItem("MSPaint",$Other_Traymenu,-1,1) _TrayItemSetIcon(-1, "mspaint.exe", 0) _TrayItemSetIcon(-1, "", 0) $help_TrayItem = _TrayCreateItem("О программе") _TrayItemSetIcon(-1, "explorer.exe", -8) _TrayCreateItem("") _TrayItemSetIcon(-1, "", 0) $Exit_TrayItem = _TrayCreateItem("Выход") _TrayItemSetIcon(-1, "shell32.dll", 28) _SetTrayIconBkColor(0xC46200) _SetTraySelectBkColor(0x087272) _SetTraySelectTextColor(0xFFFFFF) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE,$Exit_Button GUISetState(@SW_HIDE,$Form) Case $Calc_TrayItem Run("Calc.exe") Case $Notepad_TrayItem Run("Notepad.exe") Case $CmdLine_TrayItem Run("Cmd.exe") Case $MSPaint_TrayItem Run("MSPaint.exe") Case $Word_TrayItem Run (@ProgramFilesDir &"\Microsoft Office\Office12\WINWORD.EXE") Case $help_TrayItem GUISetState(@SW_SHOW,$Form) Case $Exit_TrayItem _TrayIconDelete($hTrayIcon) Exit Case $Ok_Button $ReadPass=GUICtrlRead($Pas_Input) $pass = "1234" if $ReadPass<1 then MsgBox(0,"Ошибка","Вы не ввели пароль, а кнопку жмете, как прикажете понимать?") else if $ReadPass=$pass then GUICtrlSetState( $Other_Traymenu,$GUI_Enable ) MsgBox(0,"Ошибка","Меню разблокированно!") GUISetState(@SW_HIDE,$Form) else if $ReadPass<>$pass then MsgBox(0,"Ошибка","Введенный пароль не верный") Endif Endif Endif EndSwitch WEnd | Для работы скрипта нужна библиотека ModernMenuRaw.au3, но думаю она в вас имеется, ибо как бы без нее делали красивые пункты в трей меню... Добавлено: ViSiToR спасибо, теперь понятно. Sproxy, код воде несложный, но библиотеки CDTray_Check.au3 у меня нету, а где взять, не знаю, гугл - молчит. |