1 (изменено: marusa122, 2023-04-20 17:10:06)

Тема: 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

2

Re: AHK: Ошибка в форме для редактирования скриптов

Метки в конец перенесите, за Return.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

3

Re: AHK: Ошибка в форме для редактирования скриптов

Gui, Add, Picture, XM   Y+M w100 h100 gA1, D:\image1.png 
Gui, Show,, App Launcher
Return 

A1:
Run, "C:\Program Files\Program2\Program2.exe"
Return 
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

4

Re: AHK: Ошибка в форме для редактирования скриптов

serzh82saratov, спасибо, форма открылась и кнопки заработали так, как надо!