Что нового

[Элементы GUI] Остановка работы скрипта GUI кнопкой

greshnik77

Новичок
Сообщения
27
Репутация
0
Код:
while 1
....
wend

Func zapuska()
$put_aion=GUICtrlRead($Input1)
$login=GUICtrlRead($Input2)
$pass=GUICtrlRead($Input3)

	If $login = ""  then 
		MsgBox(48,"","Внимание! Ведите логин!")
		Else
		If $pass = "" then 
		MsgBox(48,"","Внимание! Ведите пароль!")
		Else
		If $put_aion = "" Then
			MsgBox(48,"","Игра не найдена, выберите папку с Aion!")
		Else
		If GUICtrlRead($Inputpx) = "" and GUICtrlRead($Inputpy)="" Then
			MsgBox(48,"","Введите коардинаты выбора игрока!")
		Else
		If GUICtrlRead($Checkbox1) = $GUI_CHECKED and GUICtrlRead($Input4) = ""  Then
			MsgBox(48,"","Введите названия окна бота!") 
		Else
		If GUICtrlRead($Input9) = "" Then
			MsgBox(48,"","Введите время загрузки клиента!")
		Else
		If GUICtrlRead($Checkbox1) = $GUI_CHECKED and GUICtrlRead($Inputvx) = "" and GUICtrlRead($Inputvy)="" Then
			MsgBox(48,"","Введите коардинаты кнопки бота!")   
		Else
			
	While 1

If $iPercent Then
	If ProcessExists("SendLogClient.exe") Then 
ProcessClose("AION.bin")
Sleep (300)
# ждём 3 секунды
EndIf
	If ProcessExists("SendLogClient.exe") Then 
ProcessClose("SendLogClient.exe")
EndIf
Sleep (300)
# ждём 3 секунды
	If ProcessExists("WerFault.exe") Then 
ProcessClose("WerFault.exe")
EndIf
Sleep(50)
Sleep(300)
 	If Not ProcessExists("AION.bin") And $sStatus = ' On' Then
		klient_piratka()

EndIf
Sleep(50)
EndIf
WEnd
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndFunc

Func stop()
 $iPercent = False
EndFunc


1 кнопка запускает функуцию zapuska(), как можно остановить функцию zapuska() 2 кнопкой и вернуться к while 1 в любое время? И ещё во время выполнения функции невозможно закрыть программу крестиком и выполнять другие функции, как это можно подправить?
 

sss

Продвинутый
Сообщения
332
Репутация
96
Re: Остановка скрипта

Крестиком не закрывается потому что Gui больше не опрашивается. Я бы попробовал вот так (но не уверен, не проверял так как код неполный да и вникать неохота) - так функция zapuska, грубо говоря, выполняется в отдельном потоке и не мешает основному скрипту. Я так, понял, что функция stop вызывается при нажатии второй кнопки? Пробуй, вроде и ее сделал (но, опять-таки, не уверен).
Код:
while 1
....
wend

Func zapuska()
    adlibRegister('adlib_zapuska',1)
EndFunc

Func adlib_zapuska()
$put_aion=GUICtrlRead($Input1)
$login=GUICtrlRead($Input2)
$pass=GUICtrlRead($Input3)

    If $login = ""  then
        MsgBox(48,"","Внимание! Ведите логин!")
        Else
        If $pass = "" then
        MsgBox(48,"","Внимание! Ведите пароль!")
        Else
        If $put_aion = "" Then
            MsgBox(48,"","Игра не найдена, выберите папку с Aion!")
        Else
        If GUICtrlRead($Inputpx) = "" and GUICtrlRead($Inputpy)="" Then
            MsgBox(48,"","Введите коардинаты выбора игрока!")
        Else
        If GUICtrlRead($Checkbox1) = $GUI_CHECKED and GUICtrlRead($Input4) = ""  Then
            MsgBox(48,"","Введите названия окна бота!")
        Else
        If GUICtrlRead($Input9) = "" Then
            MsgBox(48,"","Введите время загрузки клиента!")
        Else
        If GUICtrlRead($Checkbox1) = $GUI_CHECKED and GUICtrlRead($Inputvx) = "" and GUICtrlRead($Inputvy)="" Then
            MsgBox(48,"","Введите коардинаты кнопки бота!")  
        Else
           
    While 1

If $iPercent Then
    If ProcessExists("SendLogClient.exe") Then
ProcessClose("AION.bin")
Sleep (300)
# ждём 3 секунды
EndIf
    If ProcessExists("SendLogClient.exe") Then
ProcessClose("SendLogClient.exe")
EndIf
Sleep (300)
# ждём 3 секунды
    If ProcessExists("WerFault.exe") Then
ProcessClose("WerFault.exe")
EndIf
Sleep(50)
Sleep(300)
    If Not ProcessExists("AION.bin") And $sStatus = ' On' Then
        klient_piratka()

EndIf
Sleep(50)
EndIf
WEnd
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
adlibUnregister('adlib_zapuska')
EndFunc

Func stop()
 adlibUnregister('adlib_zapuska')
EndFunc
 
Автор
G

greshnik77

Новичок
Сообщения
27
Репутация
0
Re: Остановка скрипта

Крестик заработал, но кнопка стоп всё ещё молчит

вот весь код

Код:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#Region ### START Koda GUI section ### Form=c:\program files\autoit3\koda_1.7.3.0\forms\form1.kxf
Opt('GUIOnEventMode',1) 
Opt('TrayIconDebug',1) 
Opt('TrayIconHide',0)

TCPShutdown()

Global $put_k_aion
Global $put_aion
Global $login
Global $pass
Global $readaion
Global $readlogin
Global $readpass
Global $Form2,$Form1,$Label1,$Label2,$Pic1,$Pic2,$nButton1,$Form3,$Form4,$Button10
HotKeySet("{F4}", "Pos")

Func Pos()
	If GUICtrlRead($Input4) = "" Then
			MsgBox(48,"","Введите названия окна бота!")
		Else
WinSetState(GUICtrlRead($Input4), "", @SW_MAXIMIZE)
# разворачиваем окно бота

WinExists(GUICtrlRead($Input4))
#Проверка наличия указанного окна. 

WinActivate(GUICtrlRead($Input4))
#Активизировать окно, то есть отобразить его на переднем плане экрана.

WinWaitActive(GUICtrlRead($Input4))
#Прервать выполнение скрипта до момента активизации указанного окна.
$pos = MouseGetPos()
ToolTip($pos[0] & "," & $pos[1])
GUICtrlSetData($Inputvx, $pos[0])
GUICtrlSetData($Inputvy, $pos[1])
Sleep(2000)
IniWrite(@ScriptDir & "/config.ini","knopkabx", "xb", $pos[0])
IniWrite(@ScriptDir & "/config.ini","knopkaby", "yb", $pos[1])
EndIf
EndFunc

HotKeySet("{F5}", "Pos2")
Func Pos2()
$pos1 = MouseGetPos()
ToolTip($pos1[0] & "," & $pos1[1])
GUICtrlSetData($Inputpx, $pos1[0])
GUICtrlSetData($Inputpy, $pos1[1])
Sleep(2000)
IniWrite(@ScriptDir & "/config.ini","personazx", "personazbx", $pos1[0])
IniWrite(@ScriptDir & "/config.ini","personazy", "personazby", $pos1[1])
EndFunc

HotKeySet("{F6}", "Terminate")
Func Terminate()
MsgBox(4096, "", "Автозапуск остановлен")
Exit 0
EndFunc

$Form1 = GUICreate("Автовход для AION v0.1a", 615, 374, 314, 167)
GUISetOnEvent($GUI_EVENT_CLOSE,     '_Pro_Exit')
$Tab1 = GUICtrlCreateTab(0, 0, 609, 297, $TCS_FIXEDWIDTH)
_GUICtrlTabSetBkColor($Form1, $Tab1, 0xf0f0f0)
$TabSheet1 = GUICtrlCreateTabItem("Учетные данные")
$Button3 = GUICtrlCreateButton("Запустить AION", 164, 137, 105, 25)
GUICtrlSetOnEvent(-1, 'zapusk_aion')
$Button2 = GUICtrlCreateButton("Запустить автовход", 28, 201, 113, 33)
GUICtrlSetOnEvent(-1, 'zapuska')
$Button10 = GUICtrlCreateButton("Стоп", 152, 201, 113, 33)
GUICtrlSetOnEvent(-1, 'stop')
$Group2 = GUICtrlCreateGroup("Путь к Aion", 324, 41, 273, 65)
$Input1 = GUICtrlCreateInput("", 340, 57, 193, 21)
$Button1 = GUICtrlCreateButton("...", 540, 49, 33, 33, $BS_ICON)
GUICtrlSetImage(-1, & @ScriptDir "\img\Find.ico", -1)
GUICtrlSetOnEvent(-1, 'put_k_aion')
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group1 = GUICtrlCreateGroup("Учетные данные", 20, 41, 281, 137)
$Input2 = GUICtrlCreateInput("", 92, 73, 169, 21)
$Label1 = GUICtrlCreateLabel("Логин", 36, 73, 35, 17)
$Label2 = GUICtrlCreateLabel("Пароль", 36, 105, 42, 17)
$Input3 = GUICtrlCreateInput("", 92, 105, 169, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
$Button4 = GUICtrlCreateButton("Свернуть AION", 36, 137, 97, 25)
GUICtrlSetOnEvent(-1, 'aiontree')
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group3 = GUICtrlCreateGroup("Настройки выбора персонажа, сервера и т.д.", 324, 120, 273, 145)
$Label6 = GUICtrlCreateLabel("Коардинаты выбор персонажа:", 336, 152, 163, 17)
$Inputpx = GUICtrlCreateInput("", 344, 176, 25, 21)
$Label9 = GUICtrlCreateLabel("x:", 336, 176, 12, 17)
$Label10 = GUICtrlCreateLabel("y:", 376, 176, 12, 17)
$Inputpy=GUICtrlCreateInput("", 384, 176, 25, 21)
$Button7 = GUICtrlCreateButton("Button7", 504, 144, 33, 33, $BS_ICON)
GUICtrlSetImage(-1, & @ScriptDir "\img\Help.ico", -1)
GUICtrlSetOnEvent(-1, 'select_person')
$Label11 = GUICtrlCreateLabel("Время загрузки клиена(в мсек):", 336, 208, 169, 17)
$Input9=GUICtrlCreateInput("", 512, 208, 57, 21)
$Label13 = GUICtrlCreateLabel("1сек=1000мсек", 336, 232, 84, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$TabSheet2 = GUICtrlCreateTabItem("Аиболит")

$Group4 = GUICtrlCreateGroup("Настройки для аиболита", 16, 32, 313, 161)
$Input4 = GUICtrlCreateInput("", 140, 87, 113, 21)
GUICtrlSetState(-1, $GUI_DISABLE)

$Label4 = GUICtrlCreateLabel("Название окна бота:", 28, 87, 110, 17)
$Inputvx = GUICtrlCreateInput("", 204, 119, 25, 21)
GUICtrlSetState(-1, $GUI_DISABLE)

$Label5 = GUICtrlCreateLabel("Координаты кнопки влючить:", 32, 128, 153, 17)
$Label7 = GUICtrlCreateLabel("x:", 192, 128, 12, 17)
$Label8 = GUICtrlCreateLabel("y:", 240, 128, 12, 17)
$Inputvy = GUICtrlCreateInput("", 252, 119, 25, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button8 = GUICtrlCreateButton("Button8", 260, 79, 33, 33, $BS_ICON)
GUICtrlSetImage(-1, @ScriptDir & "\img\Help.ico", -1)
GUICtrlSetOnEvent(-1, 'okno_bot')
$Button9 = GUICtrlCreateButton("Button9", 284, 111, 33, 33, $BS_ICON)
GUICtrlSetOnEvent(-1, 'info_xybot')
GUICtrlSetImage(-1, & @ScriptDir "\img\Help.ico", -1)

$Checkbox1 = GUICtrlCreateCheckbox('', 160, 56, 25, 17)
GUICtrlSetOnEvent(-1, 'check_chekbox')
$Label14 = GUICtrlCreateLabel("Ипользовать аиболита?", 28, 56, 127, 17)
GUICtrlSetTip ( -1, "Использовать бота?" )

;$TabSheet3 = GUICtrlCreateTabItem("TabSheet3")
GUICtrlCreateTabItem("")
$Label3 = GUICtrlCreateLabel("Статус сервера:", 448, 344, 149, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetOnEvent(-1, 'status')
$Button5 = GUICtrlCreateButton("", 288, 320, 49, 41, $BS_ICON)
GUICtrlSetImage(-1, & @ScriptDir "\img\SETUP02.ICO", -1)
GUICtrlSetOnEvent(-1, 'sohranenie')
GUICtrlSetTip ( -1, "Сохранить настройки." ) 

$Button6 = GUICtrlCreateButton("Button6", 352, 320, 49, 41, $BS_ICON)
GUICtrlSetImage(-1, & @ScriptDir "\img\SETUP11.ICO", -1)
GUICtrlSetOnEvent(-1, 'zagruzka')
GUICtrlSetTip ( -1, "Загрузить настройки." )

$TabSheet3 = GUICtrlCreateTabItem("Бот")
$Group5 = GUICtrlCreateGroup("Показатели", 16, 56, 193, 97)
$Label15 = GUICtrlCreateLabel("HP", 40, 80, 139, 17, $SS_CENTER)
GUICtrlSetBkColor(-1, 0xFF0000)
$Label16 = GUICtrlCreateLabel("MP", 40, 112, 139, 17, $SS_CENTER)
GUICtrlSetBkColor(-1, 0x0000FF)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Checkbox2 = GUICtrlCreateCheckbox("Использовать бота?", 16, 32, 161, 17)
;Global  $fWork=0
GUISetState()
#EndRegion ### END Koda GUI section ###



Func _1()
WinExists("bot")
WinActivate("bot")
Send("{ESC}") 
# Закрываем ошибку бота

Sleep (3000)
# ждём 3 секунды 

WinSetState(GUICtrlRead($Input4), "", @SW_MAXIMIZE)
# разворачиваем окно бота

WinExists(GUICtrlRead($Input4))
#Проверка наличия указанного окна. 

WinActivate(GUICtrlRead($Input4))
#Активизировать окно, то есть отобразить его на переднем плане экрана.

WinWaitActive(GUICtrlRead($Input4))
#Прервать выполнение скрипта до момента активизации указанного окна.
TrayTip("Справка", "Включаем аиболита.", 5, 1)
Sleep (3000)
# ждём 3 секунды 

MouseMove(GUICtrlRead($Inputvx),GUICtrlRead($Inputvy),20)
# перемещаем мышь

Sleep (3000)
# ждём 3 секунды 

MouseClick("left")
# Запускаем бота

Sleep (3000)
# ждём 3 секунды 

;MouseMove( 61,49, 20 )
;# перемещаем мышь

;Sleep (3000)
;# ждём 3 секунды 

;MouseClick("left")
;# Запускаем режим боя бота
TrayTip("Справка", "Вход выполнен, для остановки программы нажмите F6", 30, 1)
Sleep (7000)
# ждём 3 секунды
WinSetState("Бот", "", @SW_MINIMIZE)	
EndFunc   ;==>_1


Func _GUICtrlTabSetBkColor($hWnd, $hSysTab32, $sBkColor)
    ;Disabled Label to hold the color
    Local $aTabPos = ControlGetPos($hWnd, "", $hSysTab32)
    GUICtrlCreateLabel("", $aTabPos[0] + 2, $aTabPos[1] + 23, $aTabPos[2] - 5, $aTabPos[3] - 26)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetBkColor(-1, $sBkColor)
EndFunc

Func _Pro_Exit() 
    Exit 
EndFunc

Func select_person() 
$Form4 = GUICreate("Справка", 554, 449, 514, 201)
$Label1 = GUICtrlCreateLabel("Наведите в окне выбора персонажей на того кем будете ботить.", 24, 32, 335, 17)
$Label2 = GUICtrlCreateLabel("Внимание! После перезахода или вылета пресонаж будет в первой ячейке в окне", 24, 64, 422, 17)
$Label3 = GUICtrlCreateLabel("выбора персонажей. Рекомендуем считывать коардинаты с первой ячейки.", 24, 96, 392, 17)
$Pic1 = GUICtrlCreatePic(@ScriptDir & "\img\vibor_pers.jpg", 48, 128, 450, 107)
$Label4 = GUICtrlCreateLabel("После наведения курсором на выбранную ячейку нажмите F5, после чего координаты персонажа", 32, 256, 504, 17)
$Label5 = GUICtrlCreateLabel(" сохранятся.", 32, 288, 68, 17)
GUISetOnEvent($GUI_EVENT_CLOSE, 'okno2_Exit')
GUISetState()
EndFunc

Func okno2_Exit() 
GUISetState(@SW_HIDE, $Form4)
EndFunc

Func okno_bot() 
$Form3 = GUICreate("Справка", 465, 250, 638, 38)
$Label1 = GUICtrlCreateLabel("Укажите название окна аиболита. ", 32, 40, 183, 17)
$Pic1 = GUICtrlCreatePic(@ScriptDir & "\img\okno_bota.jpg", 40, 72, 158, 106)
$Label2 = GUICtrlCreateLabel("Внимание! Чествительный регистр, слова бот и Бот разные.", 40, 200, 334, 17)
GUISetOnEvent($GUI_EVENT_CLOSE, 'okno_Exit')
GUISetState()
EndFunc

Func okno_Exit() 
GUISetState(@SW_HIDE, $Form3)
EndFunc

Func info_xybot() 
$Form2 = GUICreate("Справка", 551, 450, 637, 40)
$Label1 = GUICtrlCreateLabel("Для считывания координат навидите курсор мыши на кнопку запуска бота и нажмите F4", 16, 24, 460, 17)
$Label2 = GUICtrlCreateLabel("Координаты должны сохраниться в поле x и y.", 16, 168, 240, 17)
$Pic1 = GUICtrlCreatePic(@ScriptDir & "\img\Snap1.jpg", 32, 48, 153, 105)
$Pic2 = GUICtrlCreatePic(@ScriptDir & "\img\snap2.jpg", 32, 192, 329, 201)
GUISetOnEvent($GUI_EVENT_CLOSE, '_2_Exit')
    GUISetState()
EndFunc

Func _2_Exit() 
GUISetState(@SW_HIDE, $Form2)
EndFunc

;$readaion=IniRead(@ScriptDir & "\config.ini", "put_aion", "aion", "NotFound")
$readlogin=IniRead(@ScriptDir & "\config.ini", "usrlogin", "login", "")
$readpass=IniRead(@ScriptDir & "\config.ini", "usrpass", "pass", "")
$xp=IniRead(@ScriptDir & "\config.ini","personazx", "personazbx", "")
$yp=IniRead(@ScriptDir & "\config.ini","personazy", "personazby", "")
$vrem_load=IniRead(@ScriptDir & "\config.ini", "vrem_load", "vrem9_load", "")
;GUICtrlSetData($Input1, $readaion)
GUICtrlSetData($Input2, $readlogin)
GUICtrlSetData($Input3, $readpass)

GUICtrlSetData($Inputpx, $xp)
GUICtrlSetData($Inputpy, $yp)
GUICtrlSetData($Input9, $vrem_load)


func check_chekbox()
If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
GUICtrlSetState($Input4, $GUI_ENABLE)
GUICtrlSetState($Inputvx, $GUI_ENABLE)
GUICtrlSetState($Inputvy, $GUI_ENABLE)
$xb=IniRead(@ScriptDir & "\config.ini","knopkabx", "xb", "")
$yb=IniRead(@ScriptDir & "\config.ini","knopkaby", "yb", "")
$okno_bot=IniRead(@ScriptDir & "\config.ini", "okno_bot", "okno_bota", "")
GUICtrlSetData($Inputvx, $xb)
GUICtrlSetData($Inputvy, $yb)
GUICtrlSetData($Input4, $okno_bot)
EndIf
If GUICtrlRead($Checkbox1) = $GUI_UNCHECKED Then
GUICtrlSetState($Input4, $GUI_DISABLE)
GUICtrlSetState($Inputvx, $GUI_DISABLE)
GUICtrlSetState($Inputvy, $GUI_DISABLE)
GUICtrlSetData($Inputvx, "")
GUICtrlSetData($Inputvy, "")
GUICtrlSetData($Input4, "")
EndIf
EndFunc


While 1

Global  $sServerIP      = '91.214.69.42'
Global  $iServerPort    = '7777'
Global  $iCountCheck    = 0
Global  $iOftenCheck    = 1000; ms   
Global  $Server    = "Cервер:"; 
TCPStartUp()
Local $iCountCheckTmp=$iCountCheck, $sResult='', $sStatus

	    TCPConnect($sServerIP, $iServerPort)
    
    $sStatus = ' On'
    If @error Then $sStatus = ' Off'
$sResult=$sStatus
GUICtrlSetData($Label3,"Статус сервера:"&$sResult)
    Sleep(10000)
		If $sStatus = ' Off' then 
TrayTip("Справка", "Сервер выключен ждём запуска сервера.", 5, 1)
	Sleep(50)
EndIf
Sleep(50)
WEnd

Func aiontree()
WinSetState("AION Client", "", @SW_MINIMIZE)
EndFunc

Func put_k_aion()
$put_k_aion=FileOpenDialog("Выберите файл для запуска Aion",@WindowsDir, "Aion (*exe)", 1)
If @error Then
    MsgBox(48,"","Внимание! Файл не выбран,выберите файл!")
Else
	GUICtrlSetData($Input1, $put_k_aion)
	
EndIf
EndFunc

Func zapusk_aion()
	Run($put_k_aion)
EndFunc


Func zapuska()
    adlibRegister('adlib_zapuska',1)
EndFunc

Func adlib_zapuska()
$put_aion=GUICtrlRead($Input1)
$login=GUICtrlRead($Input2)
$pass=GUICtrlRead($Input3)

    If $login = ""  then
        MsgBox(48,"","Внимание! Ведите логин!")
        Else
        If $pass = "" then
        MsgBox(48,"","Внимание! Ведите пароль!")
        Else
        If $put_aion = "" Then
            MsgBox(48,"","Игра не найдена, выберите папку с Aion!")
        Else
        If GUICtrlRead($Inputpx) = "" and GUICtrlRead($Inputpy)="" Then
            MsgBox(48,"","Введите коардинаты выбора игрока!")
        Else
        If GUICtrlRead($Checkbox1) = $GUI_CHECKED and GUICtrlRead($Input4) = ""  Then
            MsgBox(48,"","Введите названия окна бота!")
        Else
        If GUICtrlRead($Input9) = "" Then
            MsgBox(48,"","Введите время загрузки клиента!")
        Else
        If GUICtrlRead($Checkbox1) = $GUI_CHECKED and GUICtrlRead($Inputvx) = "" and GUICtrlRead($Inputvy)="" Then
            MsgBox(48,"","Введите коардинаты кнопки бота!")  
        Else
           
    While 1
    If ProcessExists("SendLogClient.exe") Then
ProcessClose("AION.bin")
Sleep (300)
# ждём 3 секунды
EndIf
    If ProcessExists("SendLogClient.exe") Then
ProcessClose("SendLogClient.exe")
EndIf
Sleep (300)
# ждём 3 секунды
    If ProcessExists("WerFault.exe") Then
ProcessClose("WerFault.exe")
EndIf
Sleep(50)
Sleep(300)
	    If Not ProcessExists("AION.bin") And $sStatus = ' On' Then
        klient_piratka()
Sleep(50)
EndIf
WEnd
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
adlibUnregister('adlib_zapuska')
EndFunc

Func stop()
 adlibUnregister('adlib_zapuska')
EndFunc

Func klient_piratka()
Run(GUICtrlRead($Input1))
TrayTip("Справка", "Всё ок, запускаем клиент и ждём около "& GUICtrlRead($Input9) &" мсек.", 5, 1)
Sleep (GUICtrlRead($Input9))
 

WinExists("AION Client")
WinActivate("AION Client")
WinActivate("AION Client")
Sleep(3000)
Send(GUICtrlRead($Input2)) 
# Логин

Send("{Tab}") 
# отправляем таб 

Send(GUICtrlRead($Input3)) 
# пароль 
Sleep(3000)
Send("{ENTER}")

Sleep (3000)
# ждём 3 секунды
Send("{ENTER}")
Sleep(3000)
Send("{ENTER}")
sleep(3000)
MouseMove( 203,748, 20 )
# перемещаем мышь
TrayTip("Справка", "Выбираем персонажа", 5, 1)
Sleep (3000)
# ждём 3 секунды 

MouseClick("left")
# выбираем персонажа

Sleep (3000)
# ждём 3 секунды 

Send("{ENTER}") 
# жмём ентер
TrayTip("Справка", "Входим в мир", 5, 1)
Sleep (30000)
#ждем загрузки игры 30 сек
TrayTip("Справка", "Клиент запущен", 5, 1)
WinSetState("AION Client", "", @SW_MINIMIZE)
TrayTip("Справка", "Сворачиваем окно", 5, 1)
If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
	_1()
	EndIf
EndFunc

Func sohranenie()
;IniWrite(@ScriptDir & "\config.ini", "put_aion", "aion", GUICtrlRead($Input1))
sleep(1000)
IniWrite(@ScriptDir & "\config.ini", "usrlogin", "login", GUICtrlRead($Input2))
sleep(1000)
IniWrite(@ScriptDir & "\config.ini", "usrpass", "pass", GUICtrlRead($Input3))
IniWrite(@ScriptDir & "\config.ini", "okno_bot", "okno_bota", GUICtrlRead($Input4))
IniWrite(@ScriptDir & "\config.ini", "vrem_load", "vrem9_load", GUICtrlRead($Input9))

MsgBox(64, "Информация", 'Настройки успешно сохранены.', 0)
EndFunc

Func zagruzka()
	If Not FileExists(@ScriptDir & "\config.ini") Then
	MsgBox(48,"","Не найден файл настроек. Нечего загружать.")
EndIf
If FileExists(@ScriptDir & "\config.ini") Then
;$readaion=IniRead(@ScriptDir & "\config.ini", "put_aion", "aion", "NotFound")
$readlogin=IniRead(@ScriptDir & "\config.ini", "usrlogin", "login", "")
$readpass=IniRead(@ScriptDir & "\config.ini", "usrpass", "pass", "")
;$xb=IniRead(@ScriptDir & "\config.ini","knopkabx", "xb", "")
;$yb=IniRead(@ScriptDir & "\config.ini","knopkaby", "yb", "")
;$okno_bot=IniRead(@ScriptDir & "\config.ini", "okno_bot", "okno_bota", "")
$personazx=IniRead(@ScriptDir & "\config.ini","personazx", "personazbx", "")
$personazy=IniRead(@ScriptDir & "\config.ini","personazy", "personazby", "")
$vrem_load=IniRead(@ScriptDir & "\config.ini", "vrem_load", "vrem9_load", "")
If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
GUICtrlSetState($Input4, $GUI_ENABLE)
GUICtrlSetState($Inputvx, $GUI_ENABLE)
GUICtrlSetState($Inputvy, $GUI_ENABLE)
$xb=IniRead(@ScriptDir & "\config.ini","knopkabx", "xb", "")
$yb=IniRead(@ScriptDir & "\config.ini","knopkaby", "yb", "")
$okno_bot=IniRead(@ScriptDir & "\config.ini", "okno_bot", "okno_bota", "")
GUICtrlSetData($Inputvx, $xb)
GUICtrlSetData($Inputvy, $yb)
GUICtrlSetData($Input4, $okno_bot)
EndIf
	;GUICtrlSetData($Input1, $readaion)
		GUICtrlSetData($Input2, $readlogin)
			GUICtrlSetData($Input3, $readpass)
			;GUICtrlSetData($Inputvx, $xb)
			;GUICtrlSetData($Inputvy, $yb)
			;GUICtrlSetData($Input4, $okno_bot)
			GUICtrlSetData($Inputpx, $personazx)
			GUICtrlSetData($Inputpy, $personazy)
			GUICtrlSetData($Input9, $vrem_load)
			MsgBox(64, "Информация", 'Настройки успешно загружены.', 0)
			EndIf
		EndFunc
 
Автор
G

greshnik77

Новичок
Сообщения
27
Репутация
0
Re: Остановка скрипта

Ну что не кто не поможет, гуру где вы?)
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: Остановка скрипта

greshnik77 [?]
Ну что не кто не поможет
Я помогу (остаться на этом форуме)...

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Как правильно называть темы

"Остановка скрипта" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, Администратор форума.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
greshnik77
вполне
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Малость не в тему, но все же.
Код:
WinExists(GUICtrlRead($Input4))
#Проверка наличия указанного окна.

Это ж проверка "Существует ли окно"
А где дальнейшее ветвление алгоритма,
в зависимости от "Да, - существует" или "Нет, - не существует" ?

Хоть как-то так надо бы:
Код:
If WinExists(GUICtrlRead($Input4)) Then ; если окно существует,
;тогда выполнить, иначе - пропустить.
MsgBox (64, "Ок", "Окно есть, и по-этому выполняем нашу команду")
EndIf

;далее
Код:
Func _1()
WinExists("bot")
; - то же самое - где дальнейшая логика про наличие/отсутствия окна?
WinActivate("bot")
Send("{ESC}")
# Закрываем ошибку бота


И т.д. и т.п.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
greshnik77
возможно, ты в курсе, но строка комментариев начинается с ";" а не "#"
 
Автор
G

greshnik77

Новичок
Сообщения
27
Репутация
0
Щас в курсе это когда начинал писать на autoit был не в курсе, но оно вроде не мешает и ладно. Давайте по теме уже.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
greshnik77
действительно, не мешает. я наверное что-то пропустил, раньше вроде выдавало ошибку.
если хочешь по теме, реализуй следующее
1. объяви глобальный флаг
2. в главном цикле в виде условия выполнения поставь опрос этого флага
3. если флаг равен скажем 1, то выполняй всю остальную часть скрипта
4. если флаг равен чему то другому (нулю, например), то скрипт не будет ничего делать (методом исключения)
5. создай функцию, которая меняет значение флага на противоположный
6. поставь эту функцию на хоткей.


Добавлено:
Сообщение автоматически объединено:

вот простейшая реализация
Код:
Global $flag = False

HotKeySet("^b", "FlagChanger"); Ctrl + B
HotKeySet("^{BACKSPACE}", "_Exit"); Ctrl + BackSpace

$i = 0
While 1
	While $flag
		ConsoleWrite($i & @CRLF)
		Sleep(100)
		$i += 1
	WEnd
	Sleep(10)
WEnd

Func FlagChanger()
	$flag = Not $flag
EndFunc

Func _Exit()
	Exit
EndFunc
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
greshnik77,
Можно так попробовать:
Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <MenuConstants.au3>
#include <WindowsConstants.au3>

$fPause = False
$fReturn = False
$hGui = GUICreate('Test', 300, 170)
$nLabel_1 = GUICtrlCreateLabel(StringFormat('%010d', 0), 40, 10, 90, 20)
$nLabel_2 = GUICtrlCreateLabel('Нет паузы', 170, 10, 90, 20)
$nButton_Go = GUICtrlCreateButton('Go', 40, 60, 90, 35)
$nButtonPause = GUICtrlCreateButton('Pause', 170, 60, 90, 35)
$nButtonReturn = GUICtrlCreateButton('Return', 100, 110, 100, 35)
GUISetState()
GUIRegisterMsg($WM_SYSCOMMAND, 'WM_SYSCOMMAND')
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $nButton_Go
			GUICtrlSetState($nButton_Go, $GUI_DISABLE)
			_Go()
			GUICtrlSetState($nButton_Go, $GUI_ENABLE)
	EndSwitch
WEnd
Func _Go()
	For $i = 0 To 10000000
		If $fReturn Then
			GUICtrlSetData($nLabel_1, StringFormat('%010d', 0))
			$fReturn = False
			Return
		EndIf
		GUICtrlSetData($nLabel_1, StringFormat('%010d', $i))
		Sleep(10)
		While $fPause
			If $fReturn Then
				GUICtrlSetData($nLabel_1, StringFormat('%010d', 0))
				$fReturn = False
				Return
			EndIf
			Sleep(10)
		WEnd
	Next
EndFunc   ;==>_Go

Func WM_SYSCOMMAND($hWnd, $Msg, $wParam, $lParam)
	Local $nID = BitAND($wParam, 0xFFFF)
	If $nID == $SC_CLOSE Then Exit
	Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_SYSCOMMAND

Func WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
	Local $nNotifyCode = BitShift($wParam, 16)
	Local $nID = BitAND($wParam, 0xFFFF)
	Switch $nNotifyCode
		Case $BN_CLICKED
			Switch $nID
				Case $nButtonPause
					$fPause = Not $fPause
					If $fPause Then
						GUICtrlSetData($nLabel_2, 'Пауза')
					Else
						GUICtrlSetData($nLabel_2, 'Нет паузы')
					EndIf
				Case $nButtonReturn
					$fReturn = True
			EndSwitch
	EndSwitch
	Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND
 
Верх