Все время выдает '0' При проверке с помощью GUICtrlRead. Вот код:
Код:
#RequireAdmin
; ФАЙЛЫ ДЛЯ ВКЛЮЧЕНИЯ В EXE
#include <WinAPI.au3>
#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
; ОПЦИИ
AutoItSetOption("GUICloseOnESC", 0)
AutoItSetOption("TrayAutoPause",0)
AutoItSetOption("TrayMenuMode",3)
Opt("WinWaitDelay", 100)
; ОБЪЯВЛЕНИЕ КОНСТАНТ И ПЕРЕМЕННЫХ
Global Const $winH = 300
Global Const $winW = 400
;; Создание ГРАФИЧЕСКОЙ Оболочки (основное окно)
$MAINWIN=GUICreate("WinShutdown", 400, 300, 400, 300, $WS_POPUP, $WS_EX_TOOLWINDOW)
GUISetBkColor(0x000001)
GUISetState(@SW_SHOW)
; кнопка выключения
$CMD1 = GUICtrlCreateButton("", 150, 100, 70, 50)
AdlibRegister('_SetOnTopOfDesktop', 100)
; Окно настроек
$SETTINGS=GUICreate("Настройки WinShutdown",300,300,@DesktopWidth/2.6,@DesktopHeight/2.8, $DS_SETFOREGROUND, $WS_EX_TOOLWINDOW+$WS_EX_TRANSPARENT, $MAINWIN)
GUISetState(@SW_HIDE)
$CHECKBOX=GUICtrlCreateCheckbox("Автозапуск",15,15,120,15)
$CHECKREAD=Number(GUICtrlRead($CHECKBOX) = $GUI_CHECKED)
$OK=GUICtrlCreateButton("Сохранить",115,241,65,30)
;ТРЕЙ
$TRAY4 = TrayCreateItem("Настройки")
$TRAY7 = TrayCreateItem("Выход")
;; Тело цикла
While 1
$MSG = GUIGetMsg() ; отлов сообщений GUI
Select
Case $MSG = $TRAY7
Exit
Case $MSG=$OK
GUISetState(@SW_Hide,$SETTINGS)
Case $MSG=$CHECKBOX
If $CHECKREAD=1 Then
IniWrite(@ScriptDir & "\config.ini", "checkstate", "checked", 1)
MsgBox(0,'',$CHECKREAD)
Else
IniWrite(@ScriptDir & "\config.ini", "checkstate", "checked", 0)
MsgBox(0,'',$CHECKREAD)
EndIf
EndSelect
$trmsg = TrayGetMsg() ; отлов сообщений трея
Select
Case $trmsg = $TRAY4
$INICHECKED=IniRead(@ScriptDir & "\config.ini", "checkstate", "checked","")
If $INICHECKED=1 then GUICtrlSetState($CHECKBOX,$GUI_CHECKED)
GUISetState(@SW_SHOW,$SETTINGS)
Case $trmsg = $TRAY7
Exit
EndSelect
Wend
; поверх только рабочего стола
Func _SetOnTopOfDesktop()
If WinActive("[REGEXPCLASS:^(Progman|WorkerW)$]") Then
WinSetOnTop($MAINWIN, '', 1) ; <-- добавлено
WinActive("[REGEXPCLASS:^(Progman|WorkerW)$]")
WinSetOnTop($MAINWIN, '', 0) ; <-- добавлено
EndIf
EndFunc