1 (изменено: anerevandrey, 2017-10-28 23:32:17)

Тема: AHK: Проблема с совмещением GUI интерфейсов.

Доброго времени суток. У меня возникла проблема с GUI, есть два скрипта, один основной с  ЭУ типа "Button", а второй активируется при помощи "GoSub, Label".
Проблема в том что при нажатии на ЭУ Button на головном GUI интерфейсе происходит его наложение на первый GUI интерфейс, и я знаю в чём проблема скрип не завершает поток по тому что команда Exit идёт после GoSub и никогда не будет выполнена. Прошу подсказать решение, заранее благодарю, скрипт прикреплю ниже.

!1::
Omega:
size :=14
Gui, Add, Picture, x120 y1 w370 h400, D:\Users\Andrey\Documents\31109010.jpg
Gui, Font, s%size%
Gui, Add, Text, cRed x70 y4 , Прокачка форумных аккаунтов 
Gui, Add, Button, w150 h90, Накрутка лайков 
Gui, Add, Button, w150 h90, Накрутка сообщений 
Gui, Add, Button, w150 h90, Накрутка лайков (Себе)
Gui, Show, Restore w400 h400
Exit

ButtonНакруткалайков:
Return
GoSub, Like1
GoSub, Omega
Exit


Like1:
Like := 2
Gui, Add, Text,, URL forum page:
Gui, Add, Text,, Number of pages:
Gui, Add, Edit, vURLforumpage ym 
Gui, Add, Edit, vNumberofpages
Gui, Add, Button, w150 h150, OK 
Gui, Show
Exit 


ButtonOK:
Gui, Submit 
Sleep, 3000
Sendinput, {F6}
Sleep, 400
Sendinput, %URLforumpage% {enter}
Loop
{
Sleep, 8000
Click 973, 79
Sleep, 25000
Sendinput, {F6}
Sleep, 400
Sendinput, %URLforumpage%/?page=%Like%{enter}
Sleep, 100
Like++1
If Like=%Numberofpages%
Return
}

2

Re: AHK: Проблема с совмещением GUI интерфейсов.

Если Вы пользуетесь метками перехода для того, чтобы выполнить подпрограмму, тело которой описано ниже соответствующей метки, то место, где по Вашему мнению код должен перестать работать и вернуться обратно к тому месту исполнения, откуда был вызван (оператор "GoSub") - должно оканчиваться оператором "Return". Возврат, если по нашему. А у Вас, верно, везде "Exit" - выход. Метка "ButtonНакруткалайков" - единственная, которая возвращает управление в место вызова, но в её теле нет ни строки кода. И, чтобы показать окно GUI, если оно было скрыто, или ещё не было показано, используют "Gui, 1: Show", где вместо 1 - может быть любой идентификатор окна, если, например, ранее их было создано несколько.


#SingleInstance, Force
#NoEnv
DetectHiddenWindows, On
SetTitleMatchMode, 2

Gui, Main: Add, Button,gShowMyGreatestWindow,Показать Потрясающее окно
Gui, Main: Add, Button,x+5 gHideMyGreatestWindow,Скрыть Потрясающее окно
Gui, Main: Show,,Main Window
WinGetPos,xx,yy,,,Main Window
yy += 100
Gui, 55: Add, Button,gShowMyMainWindow,Показать Основное окно
Gui, 55: Add, Button,x+5 gHideMyMainWindow,Скрыть Основное окно
Gui, 55: Show,x%xx% y%yy% Hide,My Greatest Window
return

ShowMyGreatestWindow:
	Gui, 55: Show
return
HideMyGreatestWindow:
	Gui, 55: Show, Hide
return
ShowMyMainWindow:
	Gui, Main: Show
return
HideMyMainWindow:
	Gui, Main: Show, Hide
return
MainGuiClose:
55GuiClose:
	ExitApp

Настоятельно рекомендую сделать закладку на этот перевод справки, после чего ознакомиться с ним и с разделом "GUI, MsgBox, InputBox и другие диалоги:" в частности.

3

Re: AHK: Проблема с совмещением GUI интерфейсов.

Спасибо я внёс изменения и всё заработало.KusochekDobra