Что нового

[Автоматизация] Помогите объеденить 2 цикла

Trans

Знающий
Сообщения
257
Репутация
6
Версия AutoIt: 3.3.7.14

Описание: Народ помогите объединить 2 скрипта "цикла" в один... уже неделю мучаюсь над этим...
Код:
AdlibRegister('Cicle1', 1)

к сожалению не помогает :'(


Ниже указан код скриптов
Код:
#include<IE.au3>

Dim $oIE = _IECreate("http://worldofrest.com.ua/wap/boj.php")

While 1
	_ClickButton($oIE, 'bitvraga')
    Sleep(500)
WEnd
Func _ClickButton(ByRef $_Obj, $sName)
    $oButtons = _IETagNameGetCollection($_Obj, 'input')
   
    $oButton = $oButtons($sName)
    If IsObj($oButton) Then _IEAction($oButton, "click")

EndFunc

Код:
$hWnd = WinGetHandle('WAP Game - World of the Rest')
While 1
        ControlSend($hWnd, "", "","{F5}")
	Sleep (2500)
WEnd
Примечания: Надо, чтоб они работали не зависимо друг от друга, но чтоб оба работали одновременно (в зависимости от своего времени)
 
Автор
T

Trans

Знающий
Сообщения
257
Репутация
6
почему-то работает только вторая функция... и теперь нажимает F5 любом активном окне...
 

Zaramot

I ♥ AutoIt
Сообщения
1 160
Репутация
657
Попробуй так:
Код:
#include<IE.au3>

Dim $oIE = _IECreate("http://worldofrest.com.ua/wap/boj.php")

AdlibRegister('_Circle1', 2500)

While 1
    _ClickButton($oIE, 'bitvraga')
    Sleep(500)
WEnd

Func _ClickButton(ByRef $_Obj, $sName)
    $oButtons = _IETagNameGetCollection($_Obj, 'input')
       $oButton = $oButtons($sName)
    If IsObj($oButton) Then _IEAction($oButton, "click")
EndFunc

Func _Circle1()
  $hWnd = WinGetHandle('WAP Game - World of the Rest')
  If $hWnd Then
    ControlSend($hWnd, "", "", "{F5}")
  EndIf
EndFunc


или так:

Код:
#include<IE.au3>

Dim $oIE = _IECreate("http://worldofrest.com.ua/wap/boj.php")

AdlibRegister('_Circle1', 2500)

While 1
    _ClickButton($oIE, 'bitvraga')
    Sleep(500)
WEnd

Func _ClickButton(ByRef $_Obj, $sName)
    $oButtons = _IETagNameGetCollection($_Obj, 'input')
       $oButton = $oButtons($sName)
    If IsObj($oButton) Then _IEAction($oButton, "click")
EndFunc

Func _Circle1()
  While 1
    $hWnd = WinGetHandle('WAP Game - World of the Rest')
    If $hWnd Then
      ControlSend($hWnd, "", "", "{F5}")
    EndIf
  Wend
EndFunc
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Zaramot,
ИМХО, так корректнее:
Код:
;...
$hWnd = WinGetHandle('WAP Game - World of the Rest')
If $hWnd Then
	ControlSend($hWnd, "", "", "{F5}")
EndIf
;...
 
Автор
T

Trans

Знающий
Сообщения
257
Репутация
6
Спасибо вам ребята, пойду дальше искать как сделать, чтоб скрипт через каждые 7минут проходил авторизацию по ссылке
worldofrest.com.ua/wap/login?user_name=xxx&user_pass=xxx

если кто знает - киньте в лс...) а так тема решена))
 

Zaramot

I ♥ AutoIt
Сообщения
1 160
Репутация
657
OffTopic:
Судя по твоей ссылке, авторизация происходит по методу GET.
Попробуй так:
Код:
#include<IE.au3>

$Login = '' ;Логин
$Pass = ''	;Пароль

$IE = _IECreate('worldofrest.com.ua/wap/login?user_name=xxx' & $Login & 'user_pass=' & $Pass)

While 1
    Sleep(420000)	;7 минут
	_IENavigate($IE, 'worldofrest.com.ua/wap/login?user_name=xxx' & $Login & 'user_pass=' & $Pass)
WEnd
 
Автор
T

Trans

Знающий
Сообщения
257
Репутация
6
Код:
>"C:\Program Files\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Users\NightlyBlooD\Desktop\WoR - Рабочий.au3"    
C:\Users\NightlyBlooD\Desktop\WoR - ???????.au3 (14) : ==> The requested action with this object has failed.:
$oButton = $oButtons($sName)
$oButton = $oButtons($sName)^ ERROR
>Exit code: 1    Time: 522.720


Из-за чего такое может быть?
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
Trans [?]
Ну и... Вам же пишут
Код:
C:\Users\NightlyBlooD\Desktop\WoR NeW.au3 (30) : ==> Variable used without being declared.:_IENavigate($IE, 'worldofrest.com.ua/wap/login?user_name=' & $Login & 'user_pass=' & $Pass)_IENavigate(^ ERROR
Variable used without being declared.
Переменная (_IENavigate(^ ERROR то есть $IE) используется без объявлены.
 
Автор
T

Trans

Знающий
Сообщения
257
Репутация
6
а как бы это исправить?
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
Trans [?]
а как бы это исправить?
Внимательнее посмотреть в код и понять, почему $oIE объявлена, а $IE нет, и вообще, откуда она взялась, и почему так походит на переменную $oIE ;)
 
Автор
T

Trans

Знающий
Сообщения
257
Репутация
6
Исправил проблему, с переходом авторизацию, но другая проблема так и осталась:

Код:
>"C:\Program Files\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Users\NightlyBlooD\Desktop\WoR - Рабочий.au3"    
C:\Users\NightlyBlooD\Desktop\WoR - ???????.au3 (14) : ==> The requested action with this object has failed.:
$oButton = $oButtons($sName)
$oButton = $oButtons($sName)^ ERROR
>Exit code: 1    Time: 522.720


Кто подскажет из-за чего это может происходить?
 
Автор
T

Trans

Знающий
Сообщения
257
Репутация
6
так кто подскажет, из-за чего такая ошибка? она может вылететь через 10 сек, а может через 15 минут...
 
Автор
T

Trans

Знающий
Сообщения
257
Репутация
6
ребят, ну кто подскажет из-за чего такая ошибка и как её убрать?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Trans,
Попробуйте немного изменить функцию:
Код:
Func _ClickButton(ByRef $_Obj, $sName)
	Local $oButtons, $oButton
	$oButtons = _IETagNameGetCollection($_Obj, 'input')
	If Not @error Then
		$oButton = $oButtons($sName)
		If IsObj($oButton) Then _IEAction($oButton, "click")
	EndIf
EndFunc   ;==>_ClickButton
 
Автор
T

Trans

Знающий
Сообщения
257
Репутация
6
хм, всё равно какие-то странности, через редактор скрипт проработал около часа без проблем. при компиляции в ехе скрипт через 10сек вылетает с ошибкой, при обычном запуске тоже самое...

может это из-за IE9? хотя я не думаю, что он тут причём-то...
 
Автор
T

Trans

Знающий
Сообщения
257
Репутация
6
Ща попробую под Oper"у или FF переписать, мб это из-за IE...
 
Автор
T

Trans

Знающий
Сообщения
257
Репутация
6
установил 8-ой IE, всё равно такая-же ерунда ошибка в строчке
Код:
$oButton = $oButtons($sName)
 
Верх