Тема: AHK: Ошибка в форме для редактирования скриптов
Здравствуйте. Есть форма для настройки скриптов. Проблема в добавлении сценариев к Gui, Add. Picture. Если я добавляю просто картинки - форма нормально открывается и работает. Но как только я пытаюсь добавить к картинкам метки и назначить функции - форма перестает открываться, вместо нее запускается программа (Program2), назначенная на первую метку (A1). Которая должна запускаться только при нажатии на картинку image1 в открытой форме.Как исправить эту проблему?
Проблемный участок кода:
; Создаём окно с подписями, текстовыми полями и кнопками
Gui, New
Gui, Add, Text , XM YM W70 R1, Фамилия
Gui, Add, Edit , X+10 YP W200 R1 vEd_Surname, %viSurname%
Gui, Add, Text , XM Y+M W70 R1, Автозвонки
Gui, Add, Edit , X+10 YP W200 R1 vHotKey_KeyCall, %viKeyCall%
Gui, Add, Text , XM Y+M W70 R1, Скриншоты
Gui, Add, Edit , X+10 YP W200 R1 vHotKey_KeyScreen, %viKeyScreen%
Gui, Add, Text , XM Y+M W285 R1, Настройка автозвонков (клавиша в поле "Автозвонки")
Gui, Add, Text , XM+20 Y+M W160 R1, Шаг 1. Кнопка Позвонить
Gui, Add, Edit , X+10 YP W40 R1 vEd_CordCallx, %viCordCallx%
Gui, Add, Edit , X+10 YP W40 R1 vEd_CordCally, %viCordCally%
Gui, Add, Text , XM+20 Y+M W160 R1, Шаг 2. Выбрать телефонию
Gui, Add, Edit , X+10 YP W40 R1 vEd_CordTELx, %viCordTELx%
Gui, Add, Edit , X+10 YP W40 R1 vEd_CordTELy, %viCordTELy%
Gui, Add, Text , XM+20 Y+M W160 R1, Шаг 3. Подтвердить звонок
Gui, Add, Edit , X+10 YP W40 R1 vEd_CordOpenx, %viCordOpenx%
Gui, Add, Edit , X+10 YP W40 R1 vEd_CordOpeny, %viCordOpeny%
Gui, Add, Text , XM Y+M W285 R1, Настройка скриншотов (клавиша в поле "Скриншоты")
Gui, Add, Text , XM+20 Y+M W160 R1, Шаг 1. Выбрать сумму заказа
Gui, Add, Edit , X+10 YP W40 R1 vEd_CordSumx, %viCordSumx%
Gui, Add, Edit , X+10 YP W40 R1 vEd_CordSumy, %viCordSumy%
Gui, Add, Picture, XM Y+M w100 h100 gA1, D:\image1.png
Gui, Add, Picture, XM+192 YP w100 h100 gA2, D:\image2.png
; вот без этого фрагмента и без gA1 и gA2 в предыдущих строках все работает отлично
A1:
Run, "C:\Program Files\Program2\Program2.exe"
Return
A2:
Run, "D:\Program Files\Program3\Program3.exe"
Return
; конец фрагмента
Gui, Add, Button, XM Y+M W285 R3 vBt_Run gOnButtonRun , Начать работу
Gui, Add, Button, XM Y+M W140 R1 vBt_Save gOnButtonSave, Сохранить
Gui, Add, Button, X+5 YP W140 R1 vBt_Exit gOnButtonExit, Выйти
Gui, Show,, App Launcher
Return
Если нужно, вот весь код:
#SingleInstance Force
MsgBox, 4, Program1, Вы хотите изменить настройки запуска? `nProgram1 пропустит этот шаг через несколько секунд..., 5
Sleep, 1000
Send, {TAB}{SPACE}
IfMsgBox Yes
{
; Читаем сохранённые настройки из файла AppLauncher.ini
IniRead, viSurname, AppLauncher.ini, Settings, Surname, Фамилия
IniRead, viKeyScreen, AppLauncher.ini, Settings, KeyScreen, LWin
IniRead, viKeyCall, AppLauncher.ini, Settings, KeyCall, Esc
IniRead, viCordCallx, AppLauncher.ini, Settings, CordCallx, 135
IniRead, viCordCally, AppLauncher.ini, Settings, CordCally, 130
IniRead, viCordTELx, AppLauncher.ini, Settings, CordTELx, 135
IniRead, viCordTELy, AppLauncher.ini, Settings, CordTELy, 150
IniRead, viCordOpenx, AppLauncher.ini, Settings, CordOpenx, 656
IniRead, viCordOpeny, AppLauncher.ini, Settings, CordOpeny, 206
IniRead, viCordSumx, AppLauncher.ini, Settings, CordSumx, 1280
IniRead, viCordSumy, AppLauncher.ini, Settings, CordSumy, 650
HotKey, %viKeyScreen%, MyKeyScreen
HotKey, %viKeyCall%, MyKeyCall
; Создаём окно с подписями, текстовыми полями и кнопками
Gui, New
Gui, Add, Text , XM YM W70 R1, Фамилия
Gui, Add, Edit , X+10 YP W200 R1 vEd_Surname, %viSurname%
Gui, Add, Text , XM Y+M W70 R1, Автозвонки
Gui, Add, Edit , X+10 YP W200 R1 vHotKey_KeyCall, %viKeyCall%
Gui, Add, Text , XM Y+M W70 R1, Скриншоты
Gui, Add, Edit , X+10 YP W200 R1 vHotKey_KeyScreen, %viKeyScreen%
Gui, Add, Text , XM Y+M W285 R1, Настройка автозвонков (клавиша в поле "Автозвонки")
Gui, Add, Text , XM+20 Y+M W160 R1, Шаг 1. Кнопка Позвонить
Gui, Add, Edit , X+10 YP W40 R1 vEd_CordCallx, %viCordCallx%
Gui, Add, Edit , X+10 YP W40 R1 vEd_CordCally, %viCordCally%
Gui, Add, Text , XM+20 Y+M W160 R1, Шаг 2. Выбрать телефонию
Gui, Add, Edit , X+10 YP W40 R1 vEd_CordTELx, %viCordTELx%
Gui, Add, Edit , X+10 YP W40 R1 vEd_CordTELy, %viCordTELy%
Gui, Add, Text , XM+20 Y+M W160 R1, Шаг 3. Подтвердить звонок
Gui, Add, Edit , X+10 YP W40 R1 vEd_CordOpenx, %viCordOpenx%
Gui, Add, Edit , X+10 YP W40 R1 vEd_CordOpeny, %viCordOpeny%
Gui, Add, Text , XM Y+M W285 R1, Настройка скриншотов (клавиша в поле "Скриншоты")
Gui, Add, Text , XM+20 Y+M W160 R1, Шаг 1. Выбрать сумму заказа
Gui, Add, Edit , X+10 YP W40 R1 vEd_CordSumx, %viCordSumx%
Gui, Add, Edit , X+10 YP W40 R1 vEd_CordSumy, %viCordSumy%
Gui, Add, Picture, XM Y+M w100 h100 gA1, D:\image1.png
Gui, Add, Picture, XM+192 YP w100 h100 gA2, D:\image2.png
A1:
Run, "C:\Program Files\Program1\Program1.exe"
Return
A2:
Run, "D:\Program Files\Program2\Program2.exe"
Return
Gui, Add, Button, XM Y+M W285 R3 vBt_Run gOnButtonRun , Начать работу
Gui, Add, Button, XM Y+M W140 R1 vBt_Save gOnButtonSave, Сохранить
Gui, Add, Button, X+5 YP W140 R1 vBt_Exit gOnButtonExit, Выйти
Gui, Show,, App Launcher
Return
}
Else
{
; При выборе Нет скрываем окно в трей
IniRead, viSurname, AppLauncher.ini, Settings, Surname, Фамилия
IniRead, viKeyScreen, AppLauncher.ini, Settings, KeyScreen, LWin
IniRead, viKeyCall, AppLauncher.ini, Settings, KeyCall, Esc
IniRead, viCordCallx, AppLauncher.ini, Settings, CordCallx, 135
IniRead, viCordCally, AppLauncher.ini, Settings, CordCally, 130
IniRead, viCordTELx, AppLauncher.ini, Settings, CordTELx, 135
IniRead, viCordTELy, AppLauncher.ini, Settings, CordTELy, 150
IniRead, viCordOpenx, AppLauncher.ini, Settings, CordOpenx, 656
IniRead, viCordOpeny, AppLauncher.ini, Settings, CordOpeny, 206
IniRead, viCordSumx, AppLauncher.ini, Settings, CordSumx, 1280
IniRead, viCordSumy, AppLauncher.ini, Settings, CordSumy, 650
TrayTip, Запуск Program1, Program1 запущена! `nДля остановки щелкните ПКМ по значку Program на панели задач и нажмите Exit в появившемся контекстном меню
WinHide, A
Return
}
; При нажатии Esc, закрытии окна или нажатии кнопки Exit скрипт завершается.
GuiEscape:
GuiClose:
OnButtonExit:
ExitApp
; При нажатии Save значения из текстовых полей сохраняются в файл настроек AppLauncher.ini
OnButtonSave:
Gui, Submit, NoHide
IniWrite, %Ed_Surname%, AppLauncher.ini, Settings, Surname
IniWrite, %HotKey_KeyScreen%, AppLauncher.ini, Settings, KeyScreen
IniWrite, %HotKey_KeyCall% , AppLauncher.ini, Settings, KeyCall
IniWrite, %Ed_CordCallx%, AppLauncher.ini, Settings, CordCallx
IniWrite, %Ed_CordCally%, AppLauncher.ini, Settings, CordCally
IniWrite, %Ed_CordTELx%, AppLauncher.ini, Settings, CordTELx
IniWrite, %Ed_CordTELy%, AppLauncher.ini, Settings, CordTELy
IniWrite, %Ed_CordOpenx%, AppLauncher.ini, Settings, CordOpenx
IniWrite, %Ed_CordOpeny%, AppLauncher.ini, Settings, CordOpeny
IniWrite, %Ed_CordSumx%, AppLauncher.ini, Settings, CordSumx
IniWrite, %Ed_CordSumy%, AppLauncher.ini, Settings, CordSumy
Sleep 1000
MsgBox, 64, Настройка Program1, Настройки Program1 успешно сохранены!, 3
Return
OnButtonRun:
IniRead, viSurname, AppLauncher.ini, Settings, Surname, Фамилия
IniRead, viKeyScreen, AppLauncher.ini, Settings, KeyScreen, LWin
IniRead, viKeyCall, AppLauncher.ini, Settings, KeyCall, Esc
IniRead, viCordCallx, AppLauncher.ini, Settings, CordCallx, 135
IniRead, viCordCally, AppLauncher.ini, Settings, CordCally, 130
IniRead, viCordTELx, AppLauncher.ini, Settings, CordTELx, 135
IniRead, viCordTELy, AppLauncher.ini, Settings, CordTELy, 150
IniRead, viCordOpenx, AppLauncher.ini, Settings, CordOpenx, 656
IniRead, viCordOpeny, AppLauncher.ini, Settings, CordOpeny, 206
IniRead, viCordSumx, AppLauncher.ini, Settings, CordSumx, 1280
IniRead, viCordSumy, AppLauncher.ini, Settings, CordSumy, 650
TrayTip, Запуск Program1, Program1 запущена! `nДля остановки щелкните ПКМ по значку Program1 на панели задач и нажмите Exit в появившемся контекстном меню
WinHide, A
Return
:*:пз::
FormatTime, CurrentDateTime,, dd.MM H:mm
SetKeyDelay 0
Send %CurrentDateTime% перезвонить %viSurname%
Return
MyKeyScreen:
Send, #{PrintScreen}
Return
MyKeyCall:
MouseMove, %viCordCallx%, %viCordCally%
Click %viCordTELx%, %viCordTELy%
Sleep 1000
Click %viCordOpenx%, %viCordOpeny%
Return
:*:мое::%viSurname%
:*:-25::
MouseMove, %viCordSumx%, %viCordSumy%
Click 2
ClipSave=%ClipboardAll%
Clipboard=
Send, ^{c}
ClipWait, 2
Result:=Round(Clipboard-25,2)
MsgBox, 0, Сумма для клиента, %Result% грн,
Clipboard=%ClipSave%
Return