Что нового

[Автоматизация] временная приостановка функции

Trans

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

Описание: Ребят помогите сделать такую функцию, которая будет проверять IE на наличие определённого текста, если будет этот текст, то скрипт встанет на паузу, затем выполнит опеределённую функцию и продолжет работу предыдущий функции...


вообщем как-то так я себе это представляю

Код:
Func _Hilka()
    $HealTouch = Not $HealTouch
    If $HealTouch Then
        ;(если будет текс "мой текст" то приостановится функция _My_Func и выполнится функция _HealTouch, затем возобновится функция _My_Func)
    Else
        ;Если нету такого текста, то дальше будет работать функция _My_Func
    EndIf
EndFunc


Что-то типо такого, надеюсь понятно свою мысль обьяснил...
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
Re: [Автоматизация] поиск на странице определённого текста IE

Trans,
Код:
#include <IE.au3>

$sUrl = 'http://autoit-script.ru/index.php/topic,6684'
$oIE = _IECreate($sUrl)
If @error Then
	MsgBox(16, 'Error', '_IECreate')
	Exit
EndIf
$fText = _Check_Text($oIE, 'Ответ #1')
If @error Then
	MsgBox(16, 'Error', '_Check_Text')
Else
	If $fText Then
		MsgBox(64, 'Info', 'Ответили :)')
	Else
		MsgBox(64, 'Info', 'Не отвечают :(')
	EndIf
EndIf

Func _Check_Text($o_Obj, $s_Text)
	Local $s_BodyText
	If Not IsObj($o_Obj) Then Return SetError(1)
	If Not $s_Text Then Return SetError(1)
	$s_BodyText = _IEBodyReadText($o_Obj)
	If @error Then Return SetError(1)
	Return SetError(0, 0, StringInStr($s_BodyText, $s_Text) <> 0)
EndFunc   ;==>_Check_Text

Переношу тему.
 
Автор
T

Trans

Знающий
Сообщения
257
Репутация
6
Re: [Автоматизация] поиск на странице определённого текста IE

madmasles
не совсем разобрался в вашем коде... но нашел тут в одной теме, наподобие проблем...
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
Re: [Автоматизация] поиск на странице определённого текста IE

Trans [?]
не совсем разобрался в вашем коде
В чем? Спрашивайте, попытаюсь объяснить.
 
Автор
T

Trans

Знающий
Сообщения
257
Репутация
6
Re: [Автоматизация] поиск на странице определённого текста IE

Код:
Func _Travma
$oTags = _IETagNameGetCollection($oIE, 0)
For $oTag In $oTags
    If _IEPropertyGet($oTag, "innertext") = "Вы получили травму" Then
    EndIf
Next
;Тут пауза функции _my_func
;Выполнение функции _healtouch
;Возобновление функции _my_func


никак не могу понять как приостановить, выполнить другую функцию и возобновить предыдущию


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

хотя посмотрел ваш код повнимательнее разобрался во всём, осталось только решить проблему с приостановкой скрипта, затем выполнением другого и возобновлением первого
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
Re: [Автоматизация] поиск на странице определённого текста IE

Trans,
Попробуйте так:
Код:
#include <IE.au3>

$sUrl = 'http://autoit-script.ru/index.php/topic,6684'
$oIE = _IECreate($sUrl)
If @error Then
	MsgBox(16, 'Error', '_IECreate')
	Exit
EndIf

_My_Func()

Func _My_Func()
	For $i = 1 To 100
		ToolTip($i, 0, 0)
		If Not Mod($i, 10) Then
			ToolTip($i & ' Пауза в _My_Func' & @LF & 'Проверяем наличие текста', 0, 0)
			_Check_Text($oIE, 'Ответ #' & Random(1, 8, 1))
			If @error Then
				MsgBox(16, 'Error', '_Check_Text')
			EndIf
		EndIf
		Sleep(100)
	Next
EndFunc   ;==>_My_Func

Func _Check_Text($o_Obj, $s_Text)
	Local $s_BodyText
	If Not IsObj($o_Obj) Then Return SetError(1)
	If Not $s_Text Then Return SetError(1)
	$s_BodyText = _IEBodyReadText($o_Obj)
	If @error Then Return SetError(1)
	If StringInStr($s_BodyText, $s_Text) Then
		_Yes('Есть текст: ' & $s_Text)
	Else
		_No('Нет текста: ' & $s_Text)
	EndIf
	Return SetError(0)
EndFunc   ;==>_Check_Text

Func _Yes($s_Message)
	MsgBox(48, 'OK', $s_Message)
EndFunc   ;==>_Yes

Func _No($s_Message)
	MsgBox(64, 'NO', $s_Message)
EndFunc   ;==>_No
 
Автор
T

Trans

Знающий
Сообщения
257
Репутация
6
Re: [Автоматизация] поиск на странице определённого текста IE

Теперь точно запутался,

Код:
#include <IE.au3>

$sUrl = 'http://autoit-script.ru/index.php/topic,6684'
$oIE = _IECreate($sUrl)


_My_Func()

Func _My_Func()
    For $i = 1 To 100
        ToolTip($i, 0, 0)
        If Not Mod($i, 10) Then
            ToolTip($i & ' Пауза в _My_Func' & @LF & 'Проверяем наличие текста', 0, 0)
            _Check_Text($oIE, 'Ответ #' & Random(1, 8, 1))
            If @error Then
                MsgBox(16, 'Error', '_Check_Text')
            EndIf
        EndIf
        Sleep(100)
    Next
EndFunc   ;==>_My_Func а вот её никак не могу понять, каким образом она приостанавливается...

Func _Check_Text($o_Obj, $s_Text)
    Local $s_BodyText
    If Not IsObj($o_Obj) Then Return SetError(1)
    If Not $s_Text Then Return SetError(1)
    $s_BodyText = _IEBodyReadText($o_Obj)
    If @error Then Return SetError(1)
    If StringInStr($s_BodyText, $s_Text) Then
        _Yes('Есть текст: ' & $s_Text)
    Else
        _No('Нет текста: ' & $s_Text)
    EndIf
    Return SetError(0)
EndFunc   ;==>_Check_Text вот эту функцию я понял как работает...
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
Re: [Автоматизация] поиск на странице определённого текста IE

Trans [?]
каким образом она приостанавливается
Она останавливается и ждет выполнения вызванной внутри себя другой функции.
 

nu3dell

Осваивающий
Сообщения
139
Репутация
24
Re: [Автоматизация] поиск на странице определённого текста IE

Вот проше некуда
Код:
#include <IE.au3>
#include <GUIConstants.au3>
GUICreate('', 285, 81 ,Default,Default)
$find = GUICtrlCreateButton('Найти', 10, 40, 85,24)
$a =GUICtrlCreateInput('ТУТ ТЕКСТ',10,10,200,20)

GUISetState()
While 1
    $msg = GUIGetMsg()
    Select
		 Case $msg = $GUI_EVENT_CLOSE
            Exit
	Case $msg = $find
GUISetState(@SW_HIDE)
$sUrl = 'http://autoit-script.ru/index.php/topic,6684'
$oIE = _IECreate($sUrl)
If @error Then
    MsgBox(16, 'Error', '_IECreate')
    Exit
EndIf
$fText = _Check_Text($oIE, GUICtrlRead($a)) ;Само слово которое нужно найти 
If @error Then
    MsgBox(16, 'Error', '_Check_Text')
Else
    If $fText Then
        MsgBox(64, 'Info','«'&GUICtrlRead($a)&'»' & " Найден" )
    Else
        MsgBox(64, 'Info','«'&GUICtrlRead($a)&'»' & " Не найден")
    EndIf
EndIf

Func _Check_Text($o_Obj, $s_Text)
    Local $s_BodyText
    If Not IsObj($o_Obj) Then Return SetError(1)
    If Not $s_Text Then Return SetError(1)
    $s_BodyText = _IEBodyReadText($o_Obj)
    If @error Then Return SetError(1)
    Return SetError(0, 0, StringInStr($s_BodyText, $s_Text) <> 0)
EndFunc   ;==>_Check_Text
	EndSelect
WEnd
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Re: [Автоматизация] поиск на странице определённого текста IE

Вот проше некуда

Есть куда ;D:
Код:
#include <INet.au3>

$URL = 'http://autoit-script.ru/index.php/topic,6684.0/topicseen.html' ;Полный адрес сайта где нужно найти слово
$WORD = 'Zaramot' ;Слово которое нужно найти

If _CheckIfWordExist($URL, $WORD) = True Then ;Если слово существует, то .......
	MsgBox(64, 'Check Word', 'Слово существует !')
Else ;Если слово не существует, то .......
	MsgBox(48, 'Check Word', 'Слово не существует !')
EndIf

;Функция для поиска слова.
;Если найдено слово, то возвращает True.
;Если не найдено слово, то возвращает  False.
Func _CheckIfWordExist($iURL, $iWORD)
	$iHTML = _INetGetSource($iURL)
	If StringInStr($iHTML, $iWORD) Then
		Return True
	Else
		Return False
	EndIf
EndFunc


PS nu3dell, твой скрипт выдает много ошибок.
 

nu3dell

Осваивающий
Сообщения
139
Репутация
24
Re: [Автоматизация] поиск на странице определённого текста IE

Zaramot
это не мой, а madmasles'a, просто товарищу Trans может удобней вводить слово не в коде, а в inpute который в GUI, просто по его словам мне показалось ему сложно, по этому решил значительно упростить
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Re: [Автоматизация] поиск на странице определённого текста IE

nu3dell
Тогда может было бы проще вместо GUI использовать InputBox:
Код:
$WORD = InputBox('Check If word exist', 'Напишите слово которое нужно найти:', '', '', 230, 100)
 

nu3dell

Осваивающий
Сообщения
139
Репутация
24
Re: [Автоматизация] поиск на странице определённого текста IE

Zaramot а вот тут вы действительно правы
 
Автор
T

Trans

Знающий
Сообщения
257
Репутация
6
Re: [Автоматизация] поиск на странице определённого текста IE

Ребят что-то я запутался в ваших кодах, кому не сложно сделайте пожалуйста такой код:smile:

Вот основной код бота
Код:
#Region#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=..\Pictures\favicon.ico
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_File_Add=image001.bmp, 2, 200
#AutoIt3Wrapper_Res_File_Add=logo.png, PNG, LOGO
#AutoIt3Wrapper_Res_File_Add=Start.png, PNG, START
#EndRegion
#NoTrayIcon
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
#Include <GDIPlus.au3>
#Include <Icons.au3>
#Include <WinAPIEx.au3>
Opt("TrayAutoPause",0)
Global $fState
Global $fState2
HotKeySet('{F11}', '_HideShow')
HotKeySet('{F10}', '_HideShow2')

#Region ### START Koda GUI section ### Form=
$GUI = GUICreate("World of the Rest - Click'er", 339, 169, 194, 114)
$Pic1 = GUICtrlCreatePic("", 0, 0, 339, 168)
GUICtrlSetState(-1, $GUI_DISABLE)
$Pic2 = GUICtrlCreatePic("", 215, 95,120, 70)
GUICtrlSetState(-1, $GUI_DISABLE)
$Login = GUICtrlCreateInput("", 120, 9, 130, 21, -1, 1)
$Pass = GUICtrlCreateInput("", 120, 36, 130, 23, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL), 1)
$Host = GUICtrlCreateInput("http://worldofrest.com.ua", 120, 65, 130, 21, -1, 1)
$Udar = GUICtrlCreateInput("1", 120, 91,  55, 21, -1, 1)
$Obnovlenie = GUICtrlCreateInput("5", 120, 117, 55, 21, -1, 1)
$ReLogin = GUICtrlCreateInput("30", 120, 143, 55, 21, -1, 1)
$Send = GUICtrlCreateButton("", 260, 9, 74, 51, $BS_BITMAP)
$Exit = GUICtrlCreateButton("", 260, 65, 74, 22)
$hInstance = _WinAPI_GetModuleHandle(0)
$hBitmap = _WinAPI_LoadBitmap($hInstance, 200)
_SetHImage($Pic1, $hBitmap)
_WinAPI_DeleteObject($hBitmap)
_GDIPlus_Startup()
$hImage = _LoadResourceImage($hInstance, "PNG", "LOGO")
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
_SetHImage($Pic2, $hBitmap)
_WinAPI_DeleteObject($hBitmap)
GUISetState()
#EndRegion ### END Koda GUI section ###


While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Send
	Global $oLogin =  (GUICtrlRead($Login))
	Global $oPass =  (GUICtrlRead($Pass))
	Global $My_Host =  (GUICtrlRead($Host))
	Global $Udar_Wait = (GUICtrlRead($Udar))*1000
	Global $Obn_Wait = (GUICtrlRead($Obnovlenie))*1000
	Global $ReLogin_Wait = (GUICtrlRead($ReLogin))*60000
	Global $oURL = $My_Host & '/wap/login.php?user_name=' & $oLogin & '&user_pass=' & $oPass
			Win_Wor()
            _Start()
			GUISetState(@SW_HIDE, $GUI)
Case $Exit
		_IEQuit ($oIE)
        Exit
    EndSwitch
WEnd


Func _Start()
AdlibRegister('_Refresh', $Obn_Wait)
AdlibRegister('_ReLogin', $ReLogin_Wait)
AdlibRegister('_Click', $Udar_Wait)
EndFunc


Func _HideShow2()
    $fState2 = Not $fState2
    If $fState2 Then
        GUISetState(@SW_HIDE, $GUI)
    Else
        GUISetState(@SW_SHOW, $GUI)
    EndIf
EndFunc
;##################################Script Functions#####################################

Func _ClickButton(ByRef $_Obj, $sName)
    If Not IsObj($oIE) Then Return
    If Not IsObj($_Obj) Then Return ;если $_Obj не $oIE
    $oButtons = _IETagNameGetCollection($_Obj, 'input')
    If @error Then Return
    For $oButton In $oButtons
        If $oButton.Name == $sName Then
            _IEAction($oButton, "click")
            If @error Then Return
            _IELoadWait($oIE)
            Return
        EndIf
    Next
EndFunc

Func _Refresh()
    $random = Random(1, 6, 1)
        If $random = 1 Then
            $RandomURL = '/wap/main.php'
        ElseIf $random = 2 Then
            $RandomURL = '/wap/game.php'
        ElseIf $random = 3 Then
            $RandomURL = '/wap/inventar.php'
        ElseIf $random = 4 Then
            $RandomURL = '/wap/teritory.php'
        ElseIf $random = 5 Then
            $RandomURL = '/wap/face.php'
		ElseIf $random = 6 Then
            $RandomURL = '/wap/anekdots.php'
        EndIf
    _IENavigate($oIE, $My_Host & $RandomURL)
EndFunc

Func _ReLogin()
    _IENavigate($oIE, $oURL)
EndFunc

Func _Click()
     _ClickButton($oIE, 'bitvraga')
 EndFunc

;##################################End Script Functions##################################





; Simple example: Embedding an Internet Explorer Object inside an AutoIt GUI
;
; See also: http://msdn.microsoft.com/workshop/browser/webbrowser/reference/objects/internetexplorer.asp
Func Win_Wor()
    Local  $GUIActiveX, $GUI_Button_Back, $GUI_Button_Forward
    Local $GUI_Button_Home, $GUI_Button_Stop, $msg
	Global $oIE
	Global $WinIE
    $oIE = ObjCreate("Shell.Explorer.2")

    ; Create a simple GUI for our output
	$WinIE = GUICreate("World Of The Rest", 480, 320, 0 , 0, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN))
    $GUIActiveX = GUICtrlCreateObj ($oIE, 0, 0, 480, 320)

    GUISetState(@SW_HIDE, $WinIE)       ;Show GUI

    $oIE.navigate($oURL)

    ; Waiting for user to close the window

EndFunc   ;==>Example

Func _HideShow()
    $fState2 = Not $fState2
    If $fState2 Then
        GUISetState(@SW_HIDE, $WinIE)
    Else
        GUISetState(@SW_SHOW, $WinIE)
    EndIf
EndFunc


#cs ----------------------------------------------------------------------------
Графические функции
#ce ----------------------------------------------------------------------------
Func _LoadResourceImage($hInstance, $sResType, $sResName, $iResLanguage = 0)

    Local $hInfo, $hData, $pData, $iSize, $hMem, $pMem, $hStream, $hImage

    If $iResLanguage Then
        $hInfo = _WinAPI_FindResourceEx($hInstance, $sResType, $sResName, $iResLanguage)
    Else
        $hInfo = _WinAPI_FindResource($hInstance, $sResType, $sResName)
    EndIf
    $hData = _WinAPI_LoadResource($hInstance, $hInfo)
    $iSize = _WinAPI_SizeOfResource($hInstance, $hInfo)
    $pData = _WinAPI_LockResource($hData)
    If @error Then
        Return SetError(1, 0, 0)
    EndIf
    $hMem = DllCall("kernel32.dll", "ptr", "GlobalAlloc", "uint", 2, "ulong_ptr", $iSize)
    If @error Then
        Return SetError(1, 0, 0)
    EndIf
    $pMem = DllCall("kernel32.dll", "ptr", "GlobalLock", "ptr", $hMem[0])
    If @error Then
        Return SetError(1, 0, 0)
    EndIf
    DllCall("kernel32.dll", "none", "RtlMoveMemory", "ptr", $pMem[0], "ptr", $pData, "ulong_ptr", $iSize)
    DllCall("kernel32.dll", "int", "GlobalUnlock", "ptr", $hMem[0])
    $hStream = _WinAPI_CreateStreamOnHGlobal($hMem[0])
    If @error Then
        Return SetError(1, 0, 0)
    EndIf
    _GDIPlus_Startup()
    $hImage = DllCall("gdiplus.dll", "uint", "GdipCreateBitmapFromStream", "ptr", $hStream, "ptr*", 0)
    If (@error) Or ($hImage[0]) Or (Not $hImage[2]) Then
        $hImage = 0
    EndIf
    _GDIPlus_Shutdown()
    DllCall("kernel32.dll", "ptr", "GlobalFree", "ptr", $hMem[0])
    If Not IsArray($hImage) Then
        Return SetError(1, 0, 0)
    EndIf
    Return $hImage[2]
EndFunc   ;==>_LoadResourceImage

Вот код функции лечилки
Код:
Func _HealTouch()
_IENavigate ($oIE, 'http://worldofrest.com.ua/wap/lechit.php?ID=13160656')
_IELoadWait ($oIE)
$FormLechit=_IEFormGetCollection($oIE,0)
$namelechit =_IEFormElementGetObjByName($oForm,"namelechit")
$kolres = _IEFormElementGetObjByName($oForm,"kolres")
_IEFormElementSetValue($namelechit,$oLogin)
_IEFormElementSetValue($kolres,"10")
            _IEAction($FormLechit, "click")
EndFunc


Теперь сама суть просьбы, надо сделать ещё одну функцию, которая будет проверять наличие текста (об это вы поняли) и если при наличие теста "Вы получили травму" будет приостанавливаться функция _Start, запускаться функция _HealTouch и после того как выполнится функция _HealTouch, будет возобновляться работа функции _Start ( при это не с самого начала, а с момента остановки)

Ну вроде вот так как-то :scratch:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
Re: [Автоматизация] поиск на странице определённого текста IE

Zaramot,
ИМХО, недочеты в Вашей функции _CheckIfWordExist():
1. InetRead($iURL)
1.1. Не используется нужный флаг. По умолчанию 0 и данные берутся из кеша.
1.2. Нет проверки на ошибку.

2. BinaryToString()
2.1. Используется флаг по умолчанию 1 и данные преобразуются в ANSI. Если слово поиска на русском языке и страница в кодировке UTF-8, то нужен флаг 4, иначе будут проблемы с поиском. Я так проверяю:
Код:
;...
Local $i_Flag = 1
;...
If StringInStr($s_Sourse, Hex(StringToBinary('UTF-8'))) Then $i_Flag = 4
$s_Sourse = BinaryToString($s_Sourse, $i_Flag)
;...
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Re: [Автоматизация] поиск на странице определённого текста IE

Trans
Попробуйте так:
Код:
#Region#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=..\Pictures\favicon.ico
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_File_Add=image001.bmp, 2, 200
#AutoIt3Wrapper_Res_File_Add=logo.png, PNG, LOGO
#AutoIt3Wrapper_Res_File_Add=Start.png, PNG, START
#EndRegion
#NoTrayIcon
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
#include <INet.au3>
#Include <GDIPlus.au3>
#Include <Icons.au3>
#Include <WinAPIEx.au3>
Opt("TrayAutoPause",0)
Global $fState
Global $fState2
Global $URL = '' ;Адрес страницы где нужно найти слово
HotKeySet('{F11}', '_HideShow')
HotKeySet('{F10}', '_HideShow2')

#Region ### START Koda GUI section ### Form=
$GUI = GUICreate("World of the Rest - Click'er", 339, 169, 194, 114)
$Pic1 = GUICtrlCreatePic("", 0, 0, 339, 168)
GUICtrlSetState(-1, $GUI_DISABLE)
$Pic2 = GUICtrlCreatePic("", 215, 95,120, 70)
GUICtrlSetState(-1, $GUI_DISABLE)
$Login = GUICtrlCreateInput("", 120, 9, 130, 21, -1, 1)
$Pass = GUICtrlCreateInput("", 120, 36, 130, 23, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL), 1)
$Host = GUICtrlCreateInput("http://worldofrest.com.ua", 120, 65, 130, 21, -1, 1)
$Udar = GUICtrlCreateInput("1", 120, 91,  55, 21, -1, 1)
$Obnovlenie = GUICtrlCreateInput("5", 120, 117, 55, 21, -1, 1)
$ReLogin = GUICtrlCreateInput("30", 120, 143, 55, 21, -1, 1)
$Send = GUICtrlCreateButton("", 260, 9, 74, 51, $BS_BITMAP)
$Exit = GUICtrlCreateButton("", 260, 65, 74, 22)
$hInstance = _WinAPI_GetModuleHandle(0)
$hBitmap = _WinAPI_LoadBitmap($hInstance, 200)
_SetHImage($Pic1, $hBitmap)
_WinAPI_DeleteObject($hBitmap)
_GDIPlus_Startup()
$hImage = _LoadResourceImage($hInstance, "PNG", "LOGO")
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
_SetHImage($Pic2, $hBitmap)
_WinAPI_DeleteObject($hBitmap)
GUISetState()
#EndRegion ### END Koda GUI section ###


While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Send
    Global $oLogin =  (GUICtrlRead($Login))
    Global $oPass =  (GUICtrlRead($Pass))
    Global $My_Host =  (GUICtrlRead($Host))
    Global $Udar_Wait = (GUICtrlRead($Udar))*1000
    Global $Obn_Wait = (GUICtrlRead($Obnovlenie))*1000
    Global $ReLogin_Wait = (GUICtrlRead($ReLogin))*60000
    Global $oURL = $My_Host & '/wap/login.php?user_name=' & $oLogin & '&user_pass=' & $oPass
            Win_Wor()
            _Start()
            GUISetState(@SW_HIDE, $GUI)
Case $Exit
        _IEQuit ($oIE)
        Exit
    EndSwitch
WEnd

Func _Start()
If _CheckIfWordExist($URL, 'Вы получили травму') = True Then
    _HealTouch()
Else
    AdlibRegister('_Refresh', $Obn_Wait)
	AdlibRegister('_ReLogin', $ReLogin_Wait)
	AdlibRegister('_Click', $Udar_Wait)
EndIf
EndFunc


Func _HideShow2()
    $fState2 = Not $fState2
    If $fState2 Then
        GUISetState(@SW_HIDE, $GUI)
    Else
        GUISetState(@SW_SHOW, $GUI)
    EndIf
EndFunc
;##################################Script Functions#####################################

Func _ClickButton(ByRef $_Obj, $sName)
    If Not IsObj($oIE) Then Return
    If Not IsObj($_Obj) Then Return ;если $_Obj не $oIE
    $oButtons = _IETagNameGetCollection($_Obj, 'input')
    If @error Then Return
    For $oButton In $oButtons
        If $oButton.Name == $sName Then
            _IEAction($oButton, "click")
            If @error Then Return
            _IELoadWait($oIE)
            Return
        EndIf
    Next
EndFunc

Func _Refresh()
    $random = Random(1, 6, 1)
        If $random = 1 Then
            $RandomURL = '/wap/main.php'
        ElseIf $random = 2 Then
            $RandomURL = '/wap/game.php'
        ElseIf $random = 3 Then
            $RandomURL = '/wap/inventar.php'
        ElseIf $random = 4 Then
            $RandomURL = '/wap/teritory.php'
        ElseIf $random = 5 Then
            $RandomURL = '/wap/face.php'
        ElseIf $random = 6 Then
            $RandomURL = '/wap/anekdots.php'
        EndIf
    _IENavigate($oIE, $My_Host & $RandomURL)
EndFunc

Func _ReLogin()
    _IENavigate($oIE, $oURL)
EndFunc

Func _Click()
     _ClickButton($oIE, 'bitvraga')
 EndFunc
 
 Func _HealTouch()
_IENavigate ($oIE, 'http://worldofrest.com.ua/wap/lechit.php?ID=13160656')
_IELoadWait ($oIE)
$FormLechit=_IEFormGetCollection($oIE,0)
$namelechit =_IEFormElementGetObjByName($oForm,"namelechit")
$kolres = _IEFormElementGetObjByName($oForm,"kolres")
_IEFormElementSetValue($namelechit,$oLogin)
_IEFormElementSetValue($kolres,"10")
_IEAction($FormLechit, "click")
EndFunc

Func _CheckIfWordExist($iURL, $iWORD)
    $iHTML = _INetGetSource($iURL)
    If StringInStr($iHTML, $iWORD) Then
        Return True
    Else
        Return False
    EndIf
EndFunc
 
;##################################End Script Functions##################################





; Simple example: Embedding an Internet Explorer Object inside an AutoIt GUI
;
; See also: http://msdn.microsoft.com/workshop/browser/webbrowser/reference/objects/internetexplorer.asp
Func Win_Wor()
    Local  $GUIActiveX, $GUI_Button_Back, $GUI_Button_Forward
    Local $GUI_Button_Home, $GUI_Button_Stop, $msg
    Global $oIE
    Global $WinIE
    $oIE = ObjCreate("Shell.Explorer.2")

    ; Create a simple GUI for our output
    $WinIE = GUICreate("World Of The Rest", 480, 320, 0 , 0, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN))
    $GUIActiveX = GUICtrlCreateObj ($oIE, 0, 0, 480, 320)

    GUISetState(@SW_HIDE, $WinIE)       ;Show GUI

    $oIE.navigate($oURL)

    ; Waiting for user to close the window

EndFunc   ;==>Example

Func _HideShow()
    $fState2 = Not $fState2
    If $fState2 Then
        GUISetState(@SW_HIDE, $WinIE)
    Else
        GUISetState(@SW_SHOW, $WinIE)
    EndIf
EndFunc


#cs ----------------------------------------------------------------------------
Графические функции
#ce ----------------------------------------------------------------------------
Func _LoadResourceImage($hInstance, $sResType, $sResName, $iResLanguage = 0)

    Local $hInfo, $hData, $pData, $iSize, $hMem, $pMem, $hStream, $hImage

    If $iResLanguage Then
        $hInfo = _WinAPI_FindResourceEx($hInstance, $sResType, $sResName, $iResLanguage)
    Else
        $hInfo = _WinAPI_FindResource($hInstance, $sResType, $sResName)
    EndIf
    $hData = _WinAPI_LoadResource($hInstance, $hInfo)
    $iSize = _WinAPI_SizeOfResource($hInstance, $hInfo)
    $pData = _WinAPI_LockResource($hData)
    If @error Then
        Return SetError(1, 0, 0)
    EndIf
    $hMem = DllCall("kernel32.dll", "ptr", "GlobalAlloc", "uint", 2, "ulong_ptr", $iSize)
    If @error Then
        Return SetError(1, 0, 0)
    EndIf
    $pMem = DllCall("kernel32.dll", "ptr", "GlobalLock", "ptr", $hMem[0])
    If @error Then
        Return SetError(1, 0, 0)
    EndIf
    DllCall("kernel32.dll", "none", "RtlMoveMemory", "ptr", $pMem[0], "ptr", $pData, "ulong_ptr", $iSize)
    DllCall("kernel32.dll", "int", "GlobalUnlock", "ptr", $hMem[0])
    $hStream = _WinAPI_CreateStreamOnHGlobal($hMem[0])
    If @error Then
        Return SetError(1, 0, 0)
    EndIf
    _GDIPlus_Startup()
    $hImage = DllCall("gdiplus.dll", "uint", "GdipCreateBitmapFromStream", "ptr", $hStream, "ptr*", 0)
    If (@error) Or ($hImage[0]) Or (Not $hImage[2]) Then
        $hImage = 0
    EndIf
    _GDIPlus_Shutdown()
    DllCall("kernel32.dll", "ptr", "GlobalFree", "ptr", $hMem[0])
    If Not IsArray($hImage) Then
        Return SetError(1, 0, 0)
    EndIf
    Return $hImage[2]
EndFunc   ;==>_LoadResourceImage
 
Автор
T

Trans

Знающий
Сообщения
257
Репутация
6
Re: [Автоматизация] поиск на странице определённого текста IE

Zaramot [?]
Попробуйте так:
Такой вариант не подходит, так как у ссылки в конце всегда разные цифры...
http://worldofrest.com.ua/wap/logfull.php?uni=1315847662



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

вот на мой взгляд хороший вариант
Код:
Func _Check_Text($o_Obj, $s_Text)
    Local $s_BodyText
    If Not IsObj($o_Obj) Then Return SetError(1)
    If Not $s_Text Then Return SetError(1)
    $s_BodyText = _IEBodyReadText($o_Obj)
    If @error Then Return SetError(1)
    Return SetError(0, 0, StringInStr($s_BodyText, $s_Text) <> 0)
EndFunc
но почему-то выдает ошибку
Код:
Return SetError($_IEStatus_Success, 0, $o_object.document.body.innerText)
Return SetError($_IEStatus_Success, 0, $o_object.document^ ERROR
когда добавляешь его
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Re: [Автоматизация] поиск на странице определённого текста IE

Проверь этот вариант:
Код:
#Region#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=..\Pictures\favicon.ico
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_File_Add=image001.bmp, 2, 200
#AutoIt3Wrapper_Res_File_Add=logo.png, PNG, LOGO
#AutoIt3Wrapper_Res_File_Add=Start.png, PNG, START
#EndRegion
#NoTrayIcon
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
#Include <GDIPlus.au3>
#Include <Icons.au3>
#Include <WinAPIEx.au3>
Opt("TrayAutoPause",0)
Global $fState
Global $fState2
HotKeySet('{F11}', '_HideShow')
HotKeySet('{F10}', '_HideShow2')

#Region ### START Koda GUI section ### Form=
$GUI = GUICreate("World of the Rest - Click'er", 339, 169, 194, 114)
$Pic1 = GUICtrlCreatePic("", 0, 0, 339, 168)
GUICtrlSetState(-1, $GUI_DISABLE)
$Pic2 = GUICtrlCreatePic("", 215, 95,120, 70)
GUICtrlSetState(-1, $GUI_DISABLE)
$Login = GUICtrlCreateInput("", 120, 9, 130, 21, -1, 1)
$Pass = GUICtrlCreateInput("", 120, 36, 130, 23, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL), 1)
$Host = GUICtrlCreateInput("http://worldofrest.com.ua", 120, 65, 130, 21, -1, 1)
$Udar = GUICtrlCreateInput("1", 120, 91,  55, 21, -1, 1)
$Obnovlenie = GUICtrlCreateInput("5", 120, 117, 55, 21, -1, 1)
$ReLogin = GUICtrlCreateInput("30", 120, 143, 55, 21, -1, 1)
$Send = GUICtrlCreateButton("", 260, 9, 74, 51, $BS_BITMAP)
$Exit = GUICtrlCreateButton("", 260, 65, 74, 22)
$hInstance = _WinAPI_GetModuleHandle(0)
$hBitmap = _WinAPI_LoadBitmap($hInstance, 200)
_SetHImage($Pic1, $hBitmap)
_WinAPI_DeleteObject($hBitmap)
_GDIPlus_Startup()
$hImage = _LoadResourceImage($hInstance, "PNG", "LOGO")
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
_SetHImage($Pic2, $hBitmap)
_WinAPI_DeleteObject($hBitmap)
GUISetState()
#EndRegion ### END Koda GUI section ###


While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Send
    Global $oLogin =  (GUICtrlRead($Login))
    Global $oPass =  (GUICtrlRead($Pass))
    Global $My_Host =  (GUICtrlRead($Host))
    Global $Udar_Wait = (GUICtrlRead($Udar))*1000
    Global $Obn_Wait = (GUICtrlRead($Obnovlenie))*1000
    Global $ReLogin_Wait = (GUICtrlRead($ReLogin))*60000
    Global $oURL = $My_Host & '/wap/login.php?user_name=' & $oLogin & '&user_pass=' & $oPass
            Win_Wor()
            _Start()
            GUISetState(@SW_HIDE, $GUI)
Case $Exit
        _IEQuit ($oIE)
        Exit
    EndSwitch
WEnd

Func _Start()
If _CheckIfWordExist('Вы получили травму') = True Then
    _HealTouch()
Else
    AdlibRegister('_Refresh', $Obn_Wait)
    AdlibRegister('_ReLogin', $ReLogin_Wait)
    AdlibRegister('_Click', $Udar_Wait)
EndIf
EndFunc


Func _HideShow2()
    $fState2 = Not $fState2
    If $fState2 Then
        GUISetState(@SW_HIDE, $GUI)
    Else
        GUISetState(@SW_SHOW, $GUI)
    EndIf
EndFunc
;##################################Script Functions#####################################

Func _ClickButton(ByRef $_Obj, $sName)
    If Not IsObj($oIE) Then Return
    If Not IsObj($_Obj) Then Return ;если $_Obj не $oIE
    $oButtons = _IETagNameGetCollection($_Obj, 'input')
    If @error Then Return
    For $oButton In $oButtons
        If $oButton.Name == $sName Then
            _IEAction($oButton, "click")
            If @error Then Return
            _IELoadWait($oIE)
            Return
        EndIf
    Next
EndFunc

Func _Refresh()
    $random = Random(1, 6, 1)
        If $random = 1 Then
            $RandomURL = '/wap/main.php'
        ElseIf $random = 2 Then
            $RandomURL = '/wap/game.php'
        ElseIf $random = 3 Then
            $RandomURL = '/wap/inventar.php'
        ElseIf $random = 4 Then
            $RandomURL = '/wap/teritory.php'
        ElseIf $random = 5 Then
            $RandomURL = '/wap/face.php'
        ElseIf $random = 6 Then
            $RandomURL = '/wap/anekdots.php'
        EndIf
    _IENavigate($oIE, $My_Host & $RandomURL)
EndFunc

Func _ReLogin()
    _IENavigate($oIE, $oURL)
EndFunc

Func _Click()
     _ClickButton($oIE, 'bitvraga')
 EndFunc
 
 Func _HealTouch()
_IENavigate ($oIE, 'http://worldofrest.com.ua/wap/lechit.php?ID=13160656')
_IELoadWait ($oIE)
$FormLechit=_IEFormGetCollection($oIE,0)
$namelechit =_IEFormElementGetObjByName($oForm,"namelechit")
$kolres = _IEFormElementGetObjByName($oForm,"kolres")
_IEFormElementSetValue($namelechit,$oLogin)
_IEFormElementSetValue($kolres,"10")
_IEAction($FormLechit, "click")
EndFunc

Func _CheckIfWordExist($iWORD)
    $iHTML = _IEDocReadHTML($oIE)
    If StringInStr($iHTML, $iWORD) Then
        Return True
    Else
        Return False
    EndIf
EndFunc
 
;##################################End Script Functions##################################





; Simple example: Embedding an Internet Explorer Object inside an AutoIt GUI
;
; See also: http://msdn.microsoft.com/workshop/browser/webbrowser/reference/objects/internetexplorer.asp
Func Win_Wor()
    Local  $GUIActiveX, $GUI_Button_Back, $GUI_Button_Forward
    Local $GUI_Button_Home, $GUI_Button_Stop, $msg
    Global $oIE
    Global $WinIE
    $oIE = ObjCreate("Shell.Explorer.2")

    ; Create a simple GUI for our output
    $WinIE = GUICreate("World Of The Rest", 480, 320, 0 , 0, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN))
    $GUIActiveX = GUICtrlCreateObj ($oIE, 0, 0, 480, 320)

    GUISetState(@SW_HIDE, $WinIE)       ;Show GUI

    $oIE.navigate($oURL)

    ; Waiting for user to close the window

EndFunc   ;==>Example

Func _HideShow()
    $fState2 = Not $fState2
    If $fState2 Then
        GUISetState(@SW_HIDE, $WinIE)
    Else
        GUISetState(@SW_SHOW, $WinIE)
    EndIf
EndFunc


#cs ----------------------------------------------------------------------------
Графические функции
#ce ----------------------------------------------------------------------------
Func _LoadResourceImage($hInstance, $sResType, $sResName, $iResLanguage = 0)

    Local $hInfo, $hData, $pData, $iSize, $hMem, $pMem, $hStream, $hImage

    If $iResLanguage Then
        $hInfo = _WinAPI_FindResourceEx($hInstance, $sResType, $sResName, $iResLanguage)
    Else
        $hInfo = _WinAPI_FindResource($hInstance, $sResType, $sResName)
    EndIf
    $hData = _WinAPI_LoadResource($hInstance, $hInfo)
    $iSize = _WinAPI_SizeOfResource($hInstance, $hInfo)
    $pData = _WinAPI_LockResource($hData)
    If @error Then
        Return SetError(1, 0, 0)
    EndIf
    $hMem = DllCall("kernel32.dll", "ptr", "GlobalAlloc", "uint", 2, "ulong_ptr", $iSize)
    If @error Then
        Return SetError(1, 0, 0)
    EndIf
    $pMem = DllCall("kernel32.dll", "ptr", "GlobalLock", "ptr", $hMem[0])
    If @error Then
        Return SetError(1, 0, 0)
    EndIf
    DllCall("kernel32.dll", "none", "RtlMoveMemory", "ptr", $pMem[0], "ptr", $pData, "ulong_ptr", $iSize)
    DllCall("kernel32.dll", "int", "GlobalUnlock", "ptr", $hMem[0])
    $hStream = _WinAPI_CreateStreamOnHGlobal($hMem[0])
    If @error Then
        Return SetError(1, 0, 0)
    EndIf
    _GDIPlus_Startup()
    $hImage = DllCall("gdiplus.dll", "uint", "GdipCreateBitmapFromStream", "ptr", $hStream, "ptr*", 0)
    If (@error) Or ($hImage[0]) Or (Not $hImage[2]) Then
        $hImage = 0
    EndIf
    _GDIPlus_Shutdown()
    DllCall("kernel32.dll", "ptr", "GlobalFree", "ptr", $hMem[0])
    If Not IsArray($hImage) Then
        Return SetError(1, 0, 0)
    EndIf
    Return $hImage[2]
EndFunc   ;==>_LoadResourceImage
 
Автор
T

Trans

Знающий
Сообщения
257
Репутация
6
Re: [Автоматизация] поиск на странице определённого текста IE

Zaramot [?]
Проверь этот вариант:
Выдаёт такую ошибку:
Код:
>Running:(3.3.6.1):C:\Program Files\AutoIt3_v3.3.6.1\autoit3.exe "C:\Users\NightlyBlooD\Desktop\AutoIt v3 Script (3).au3"    
C:\Program Files\AutoIt3_v3.3.6.1\Include\IE.au3 (2021) : ==> Variable must be of type "Object".:
Return SetError($_IEStatus_Success, 0, $o_object.document.documentElement.outerHTML)
Return SetError($_IEStatus_Success, 0, $o_object.document^ ERROR


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

решил сделать так:
Код:
#Region#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=..\Pictures\favicon.ico
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_File_Add=image001.bmp, 2, 200
#AutoIt3Wrapper_Res_File_Add=logo.png, PNG, LOGO
#AutoIt3Wrapper_Res_File_Add=Start.png, PNG, START
#EndRegion
#NoTrayIcon
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
#include <INet.au3>
#Include <GDIPlus.au3>
#Include <Icons.au3>
#Include <WinAPIEx.au3>
Opt("TrayAutoPause",0)
Global $WinIE
Global $fText
Global $fState
Global $fState2
Global $URL = 'http://worldofrest.com.ua/wap/logfull.php' ;Адрес страницы где нужно найти слово
HotKeySet('{F11}', '_HideShow')
HotKeySet('{F10}', '_HideShow2')

#Region ### START Koda GUI section ### Form=
$GUI = GUICreate("World of the Rest - Click'er", 339, 169, 194, 114)
$Pic1 = GUICtrlCreatePic("", 0, 0, 339, 168)
GUICtrlSetState(-1, $GUI_DISABLE)
$Pic2 = GUICtrlCreatePic("", 215, 95,120, 70)
$Login = GUICtrlCreateInput("", 120, 9, 130, 21, -1, 1)
$Pass = GUICtrlCreateInput("", 120, 36, 130, 23, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL), 1)
$Host = GUICtrlCreateInput("http://worldofrest.com.ua", 120, 65, 130, 21, -1, 1)
$Udar = GUICtrlCreateInput("1", 120, 91,  55, 21, -1, 1)
$Obnovlenie = GUICtrlCreateInput("5", 120, 117, 55, 21, -1, 1)
$ReLogin = GUICtrlCreateInput("30", 120, 143, 55, 21, -1, 1)
$Send = GUICtrlCreateButton("", 260, 9, 74, 51, $BS_BITMAP)
$Exit = GUICtrlCreateButton("", 260, 65, 74, 22)
$hInstance = _WinAPI_GetModuleHandle(0)
$hBitmap = _WinAPI_LoadBitmap($hInstance, 200)
_SetHImage($Pic1, $hBitmap)
_WinAPI_DeleteObject($hBitmap)
_GDIPlus_Startup()
$hImage = _LoadResourceImage($hInstance, "PNG", "LOGO")
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
_SetHImage($Pic2, $hBitmap)
_WinAPI_DeleteObject($hBitmap)
GUISetState()
#EndRegion ### END Koda GUI section ###


While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Send
    Global $oLogin =  (GUICtrlRead($Login))
    Global $oPass =  (GUICtrlRead($Pass))
    Global $My_Host =  (GUICtrlRead($Host))
    Global $Udar_Wait = (GUICtrlRead($Udar))*1000
    Global $Obn_Wait = (GUICtrlRead($Obnovlenie))*1000
    Global $ReLogin_Wait = (GUICtrlRead($ReLogin))*60000
    Global $oURL = $My_Host & '/wap/login.php?user_name=' & $oLogin & '&user_pass=' & $oPass
            Win_Wor()
            _Start()
            GUISetState(@SW_HIDE, $GUI)
Case $Exit
        Exit
    EndSwitch
WEnd

Func _Start()
If _Check_Text() = True Then
    _HealTouch()
Else
    AdlibRegister('_Refresh', $Obn_Wait)
    AdlibRegister('_ReLogin', $ReLogin_Wait)
    AdlibRegister('_Click', $Udar_Wait)
EndIf
EndFunc


Func _HideShow2()
    $fState2 = Not $fState2
    If $fState2 Then
        GUISetState(@SW_HIDE, $GUI)
    Else
        GUISetState(@SW_SHOW, $GUI)
    EndIf
EndFunc
;##################################Script Functions#####################################

Func _ClickButton(ByRef $_Obj, $sName)
    If Not IsObj($oIE) Then Return
    If Not IsObj($_Obj) Then Return ;если $_Obj не $oIE
    $oButtons = _IETagNameGetCollection($_Obj, 'input')
    If @error Then Return
    For $oButton In $oButtons
        If $oButton.Name == $sName Then
            _IEAction($oButton, "click")
            If @error Then Return
            _IELoadWait($oIE)
            Return
        EndIf
    Next
EndFunc

Func _Refresh()
    $random = Random(1, 6, 1)
        If $random = 1 Then
            $RandomURL = '/wap/main.php'
        ElseIf $random = 2 Then
            $RandomURL = '/wap/game.php'
        ElseIf $random = 3 Then
            $RandomURL = '/wap/inventar.php'
        ElseIf $random = 4 Then
            $RandomURL = '/wap/teritory.php'
        ElseIf $random = 5 Then
            $RandomURL = '/wap/face.php'
        ElseIf $random = 6 Then
            $RandomURL = '/wap/anekdots.php'
        EndIf
    _IENavigate($oIE, $My_Host & $RandomURL)
EndFunc

Func _ReLogin()
    _IENavigate($oIE, $oURL)
EndFunc

Func _Click()
     _ClickButton($oIE, 'bitvraga')
 EndFunc

 Func _HealTouch()
_IENavigate ($oIE, 'http://worldofrest.com.ua/wap/lechit.php?ID=13160656')
_IELoadWait ($oIE)
$FormLechit=_IEFormGetCollection($oIE,0)
$namelechit =_IEFormElementGetObjByName($FormLechit,"namelechit")
$kolres = _IEFormElementGetObjByName($FormLechit,"kolres")
_IEFormElementSetValue($namelechit,$oLogin)
_IEFormElementSetValue($kolres,"10")
_IEAction($FormLechit, "click")
EndFunc

Func _Check_Text($oIE, $s_Text)
	Global $s_Text = "Вы получили травму"
    Local $s_BodyText
    If Not IsObj($oIE) Then Return SetError(1)
    If Not $s_Text Then Return SetError(1)
    $s_BodyText = _IEBodyReadText($oIE)
    If @error Then Return SetError(1)
    Return SetError(0, 0, StringInStr($s_BodyText, $s_Text) <> 0)
EndFunc
;##################################End Script Functions##################################





; Simple example: Embedding an Internet Explorer Object inside an AutoIt GUI
;
; See also: http://msdn.microsoft.com/workshop/browser/webbrowser/reference/objects/internetexplorer.asp
Func Win_Wor()
    Local  $GUIActiveX, $GUI_Button_Back, $GUI_Button_Forward
    Local $GUI_Button_Home, $GUI_Button_Stop, $msg


   Dim $oIE = ObjCreate("Shell.Explorer.2")

    ; Create a simple GUI for our output
    $WinIE = GUICreate("World Of The Rest", 480, 320, 0 , 0, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN))
    $GUIActiveX = GUICtrlCreateObj ($oIE, 0, 0, 480, 320)

    GUISetState(@SW_HIDE, $WinIE)       ;Show GUI

    $oIE.navigate($oURL)

    ; Waiting for user to close the window

EndFunc   ;==>Example

Func _HideShow()
    $fState2 = Not $fState2
    If $fState2 Then
        GUISetState(@SW_HIDE, $WinIE)
    Else
        GUISetState(@SW_SHOW, $WinIE)
    EndIf
EndFunc


#cs ----------------------------------------------------------------------------
Графические функции
#ce ----------------------------------------------------------------------------
Func _LoadResourceImage($hInstance, $sResType, $sResName, $iResLanguage = 0)

    Local $hInfo, $hData, $pData, $iSize, $hMem, $pMem, $hStream, $hImage

    If $iResLanguage Then
        $hInfo = _WinAPI_FindResourceEx($hInstance, $sResType, $sResName, $iResLanguage)
    Else
        $hInfo = _WinAPI_FindResource($hInstance, $sResType, $sResName)
    EndIf
    $hData = _WinAPI_LoadResource($hInstance, $hInfo)
    $iSize = _WinAPI_SizeOfResource($hInstance, $hInfo)
    $pData = _WinAPI_LockResource($hData)
    If @error Then
        Return SetError(1, 0, 0)
    EndIf
    $hMem = DllCall("kernel32.dll", "ptr", "GlobalAlloc", "uint", 2, "ulong_ptr", $iSize)
    If @error Then
        Return SetError(1, 0, 0)
    EndIf
    $pMem = DllCall("kernel32.dll", "ptr", "GlobalLock", "ptr", $hMem[0])
    If @error Then
        Return SetError(1, 0, 0)
    EndIf
    DllCall("kernel32.dll", "none", "RtlMoveMemory", "ptr", $pMem[0], "ptr", $pData, "ulong_ptr", $iSize)
    DllCall("kernel32.dll", "int", "GlobalUnlock", "ptr", $hMem[0])
    $hStream = _WinAPI_CreateStreamOnHGlobal($hMem[0])
    If @error Then
        Return SetError(1, 0, 0)
    EndIf
    _GDIPlus_Startup()
    $hImage = DllCall("gdiplus.dll", "uint", "GdipCreateBitmapFromStream", "ptr", $hStream, "ptr*", 0)
    If (@error) Or ($hImage[0]) Or (Not $hImage[2]) Then
        $hImage = 0
    EndIf
    _GDIPlus_Shutdown()
    DllCall("kernel32.dll", "ptr", "GlobalFree", "ptr", $hMem[0])
    If Not IsArray($hImage) Then
        Return SetError(1, 0, 0)
    EndIf
    Return $hImage[2]
EndFunc   ;==>_LoadResourceImage
выдаёт ошибку:
Код:
C:\Users\NightlyBlooD\Desktop\AutoIt v3 Script (2) - копия.au3(150,32) : ERROR: _Check_Text() called by a previous line with 0 arg(s). Min = 2. First previous line calling this Func is 78.
Func _Check_Text($oIE, $s_Text)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\NightlyBlooD\Desktop\AutoIt v3 Script (2) - копия.au3 - 1 error(s), 0 warning(s)
 

joiner

Модератор
Локальный модератор
Сообщения
3,408
Репутация
597
Re: [Автоматизация] поиск на странице определённого текста IE

Trans
вместо
Код:
If _Check_Text() = True Then

пиши
Код:
If _Check_Text($oIE, $s_Text) = True Then
 
Верх