1

Тема: AHK: Завершение работы скрипта без закрытия интерфейса.

Есть скрипт

Gui, Add, Edit, x32 y60 w140 h20 vdog, № Претензии ASC
Gui, Add, Edit, x32 y90 w140 h20 vdata1, Дата продажи
Gui, Add, Edit, x32 y150 w200 h20 vdata3, Дата завершения ремонта
Gui, Add, CheckBox, x32 y310 w70 h20 vRem, Запчасть
Gui, Add, Edit, x102 y310 w130 h20 vremont
Gui, Add, Text, x52 y340 w40 h20 , Мастер
Gui, Add, DropDownList, x102 y340 w130 h250 vMaster AltSubmit, Вася|Петя|Лёня|Лёша
Gui, Add, Edit, x312 y250 w280 h50 vasc, АСЦ примечание
Gui, Add, Edit, x312 y310 w280 h50 vinj, Примечание инженера
Gui, Add, Button, x292 y410 w420 h30 gInput, Ввести данные
Gui, Add, Text, x312 y70 w120 h20 , Код симптома
Gui, Add, Text, x312 y100 w120 h20 , Уровень ремонта
Gui, Add, DropDownList, x442 y70 w130 h250 AltSubmit vKod1, Accessory Stilish Pen / SD Card_M7G|Вина клиента_Mag|Энергопитание_MDG|Приём/передача_MEG|Дисплей камера_MFG|ЖК дисплей_MGG|Аудио_MHG|Функции_MJG|Дополнительные функции_MKG|Внешний вид_MLG|SIM_MNG|Аксессуар батарея_MPG|Аксессуар зарядное устройтсво_MQG|Аксессуар Адаптера_MRG|Аксессуар Адаптер прикуривателя_MSG|Аксессуар Data кабель_MTG|Аксессуар карта памяти_MWG|Аксессуар гарнитура_MXG|Приложение_MYG|Дефект не обнаружен_MZG
Gui, Add, DropDownList, x442 y100 w130 h250 vlvl, Level1|Level0|Software Upgrade|Level2|Return
Gui, Add, Text, x312 y130 w120 h20 , Код ремонта
Gui, Add, DropDownList, x442 y130 w130 h250 AltSubmit vKod2, Замена(Компонент`,Блок)_C01|Замена аксессуара_P08|Обновление ПО_F05
Gui, Add, Edit, x600 y70 w130 h20 vkod3
Gui, Add, Edit, x600 y100 w130 h20 vkod4


; Generated using SmartGUI Creator 4.0
Gui, Show, x163 y174 h463 w740, New GUI Window
return


Input:
gui, submit, nohide


#NoEnv
FilePath = D:\Base 

RequestNumber = %dog%
Items = RequestDate,Disrepair,ClientName,ClientAddress,PersonPhone,PhoneIMEI

FileRead, Text, % FilePath

RegExMatch(Text, "s)RequestNumber:[ \t]*" RequestNumber ".*?Revisions:", Found)
Loop, parse, Items, `,, %A_Space%
{
   RegExMatch(Found, "s).*?" A_LoopField ":[ \t]*(.*?)\R", %A_LoopField%)
   %A_LoopField% := %A_LoopField%1
}


StringReplace, ClientName1,ClientName , СООО "Мобильные телесистемы"%A_Space%,
StringReplace, ClientName2,ClientName1 , ИП "Велком"%A_Space%,
StringReplace, ClientName3,ClientName2 , ООО "Патио плюс"%A_Space%,
StringReplace, Disrepair1,Disrepair , Выдать заключение,


WinWait Считывание данных мобильного телефона по кабелю 
WinActivate

Controlsettext, ATL:Edit1, %PhoneIMEI%, Считывание данных мобильного телефона по кабелю
controlClick,ATL:Edit1,Считывание данных мобильного телефона по кабелю
sleep, 1000 ; ждёт 1 секунду
send, {Vk0D} ;Ентер
sleep,500
send, {Vk0D} ;Ентер
loop
{
ControlGetText,jjj,Static2, Сообщение с веб-страницы

if (jjj="Операция прошла успешно") OR WinExist("GSFS -- Диалоговое окно веб-страницы")
break
sleep, 50
}

sleep,500
send,{VK0D}
WinWait Список GSM в ремонте
WinActivate ; делает его активным
sleep, 1000 ; ждёт 1 секунду
ControlSetText, ATL:Edit2, %PhoneIMEI%, Список GSM в ремонте
sleep,300
ControlGetText, bbb,ATL:Edit2,Список GSM в ремонте
sleep, 300
ControlClick, ATL:Edit9, Список GSM в ремонте
send,{VK09}
send, {VK0D}
sleep, 1000
ControlClick2(37,211,"Список GSM в ремонте")
....
Много всякой всячины
...

Нужно что-бы при нажатии комбинации клавиш ctrl+alt+end скрипт завершал свою работу, но при этом не закрывал GUI интерфейс, тем самым не убирал введённую ранее там информацию. Прошу помочь сделать это, мои попытки это организовать окончились провалом:(.

2

Re: AHK: Завершение работы скрипта без закрытия интерфейса.

Если завершаете процесс, его окна не могут остаться.
Либо уточните, что следует понимать под "скрипт завершал свою работу".

3

Re: AHK: Завершение работы скрипта без закрытия интерфейса.

После нажатия кнопки "Input" скрипт начинает доставать информацию в переменные, вносить в нужные окна и так далее. Требуется прекратить эту работу скрипта и перевести его в то же состояние, которое было до нажатия кнопки "Input".

4

Re: AHK: Завершение работы скрипта без закрытия интерфейса.

Или может можно сделать так, что бы при перезапуске скрипта введённая информация никуда не пропадала(из элементов управления GUI)?:)

5

Re: AHK: Завершение работы скрипта без закрытия интерфейса.

Прервать работу скрипта можно (см. "Потоки"). А вернуть его в какое-нибудь состояние - не знаю. Есть варианты, но все они "кривые".

6

Re: AHK: Завершение работы скрипта без закрытия интерфейса.

Skare, при закрытии окна/завершении скрипта пишете информацию в ini-файл, при запуске — читаете из него и подставляете в переменные формы.