Что нового

Помогите, что не так со второй частью скрипта.

Serega1383

Новичок
Сообщения
25
Репутация
0
Скрипт жмёт в определённой части браузера, затем табами доходит до определённого окна вписывает сегодняшнюю дату и время, затем табом переходит в следующее окно и выставляет другую дату.
Далее скрипт должен искать по координатам пикселя и припоявлении жать два раза мышкой. Но после установки даты ничего не происходит (с цикла While). По раздельности две части скрипта работают.
Код:
#include <Date.au3>
Mouseclick ("left" , 200, 61)
sleep(1000)
$Date=@MDAY & "." &@MON & "." &@YEAR & " " &@HOUR & ":" &@MIN
$Date_new=_DateAdd('d', 1,_NowCalcDate()) 
$tek_data_dd=StringMid($Date_new, 9, 2)
$Date_Max=$tek_data_dd & "." &@MON & "." &@YEAR & " " & "02:00"
Send(@tab & @tab &@tab & $Date & "{enter}") 
sleep(500)
Send(@tab & @tab &@tab & $Date_Max & "{enter}") 
sleep(1000)
; вот эта часть не работает (если её прописать без верхней, то все работает) 
While 1
PixelSearch(42, 193, 72, 204, 000000) 
If Not @error Then
Action() 
sleep(180000)
EndIf
Wend
Func Action() 
 MouseClick("left") 
 MouseClick("left") 
 sleep(195000)
send("!k") 
EndFunc
 

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
Serega1383, вы пробовали запускать его из SciTE? И искать ошибки

P.S. Не White, а While и <Date.au3>
 
Автор
S

Serega1383

Новичок
Сообщения
25
Репутация
0
Там опечатка, пишу с телефона автозамена. Уже исправил.
 

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
Serega1383, а как вы определяете что ничего не происходит? Может просто он не находит пиксель? И еще скрипт кликает по текущим координатам мыши, а не указанным и паузы по 3 минуты после кликов и нахождения пикселя

Попробуйте проверить срабатывает ли условие выводом сообщений в консоль
Код:
#include <Date.au3>

Local $sDate = @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN
Local $sMaxDate = StringMid(_DateAdd("d", 1, _NowCalcDate()), 9, 2) & "." & @MON & "." & @YEAR & " " & "02:00"

MouseClick("left", 200, 61)
Sleep(1000)

Send(@TAB & @TAB & @TAB & $sDate & "{ENTER}")
Sleep(500)
Send(@TAB & @TAB & @TAB & $sMaxDate & "{ENTER}")
Sleep(1000)

While 1
	PixelSearch(42, 193, 72, 204, 0)
	If Not @error Then
		ConsoleWrite("--> Клик" & @LF)
		MouseClick("left", Default, Default, 2)

		ConsoleWrite("--> Пауза 195000 мсек" & @LF)
		Sleep(195000)

		ConsoleWrite("--> Нажатие !k" & @LF)
		Send("!k")

		ConsoleWrite("--> Пауза 180000 мсек" & @LF)
		Sleep(180000)
	EndIf
WEnd
 
Автор
S

Serega1383

Новичок
Сообщения
25
Репутация
0
Первая часть сработала, ввело дату.
Потом вылезла ошибка:
Line 3271 (d:\путь к к скрипту)
Error:unknown functions name.
 

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
Serega1383, запускайте код из SciTE будет видно какая функция отсутствует или где опечатка


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

И приложите код который вы запускали, а то не очень понятно как вы сделали ошибку при копировании кода с форума
 
Автор
S

Serega1383

Новичок
Сообщения
25
Репутация
0
Вот тут выдаёт ошибку. Unknown functions name
ConsoleWrite("--> Клик" & @LF)
 

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
Serega1383, лучше скопируйте все что SciTE выдал в консоль
 
Автор
S

Serega1383

Новичок
Сообщения
25
Репутация
0
Так это и есть все. А если вставить от While мою часть. То скрипт работает, но он не жмёт два раза а просто просто прожимает ! K


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

Короче первая часть с датами работает идеально. Мне надо чтобы после ввода дат скрипт:
Зациклил
1. Постоянно искал чёрный цвет в определённом месте, если нашёл, то
2. нажал в указанное место на него два раза мышкой
3. Подождал 3 минуты
4. Нажал аль+к
 

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
Serega1383, я так понимаю вы не запускаете скрипт из SciTE

Код:
#include <Date.au3>

Local $sDate = @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN, $aCoords
Local $sMaxDate = StringMid(_DateAdd("d", 1, _NowCalcDate()), 9, 2) & "." & @MON & "." & @YEAR & " " & "02:00"

MouseClick("left", 200, 61)
Sleep(1000)

Send(@TAB & @TAB & @TAB & $sDate & "{ENTER}")
Sleep(500)
Send(@TAB & @TAB & @TAB & $sMaxDate & "{ENTER}")
Sleep(1000)

While 1
    $aCoords = PixelSearch(42, 193, 72, 204, 0)
    If Not @error Then
        ConsoleWrite("--> Клик" & @LF)
        MouseClick("left", $aCoords[0], $aCoords[1], 2)

        ConsoleWrite("--> Пауза 195000 мсек" & @LF)
        Sleep(195000)

        ConsoleWrite("--> Нажатие !k" & @LF)
        Send("!k")

        ConsoleWrite("--> Пауза 180000 мсек" & @LF)
        Sleep(180000)
    EndIf
WEnd



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

Вы ни разу не упомянули что скрипт должен кликать по найденным координатам хотя знали что скрипт кликает по текущим координатам мыши

Tempo сказал(а):
И еще скрипт кликает по текущим координатам мыши, а не указанным
 
Автор
S

Serega1383

Новичок
Сообщения
25
Репутация
0
Я включал запускал внизу умения было, написано данное сообщение об ошибке. Может я что-то не то в нем жму в scite. Жал ctrl+f7, f7 и f5


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

Да можно и по определённым координатам кликать, не суть. Почему по раздельно типа скрипт работает, весь нифига


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

То есть да нужно чтобы он клика по определённым координатам, а не в текущее
 

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
Serega1383, попробовали скрипт из последнего сообщения? Если будет ошибка о неизвестной функции прикрепите скриншот
 
Автор
S

Serega1383

Новичок
Сообщения
25
Репутация
0
Я уже устал, кто нибудь может объяснить почему отдельно работает эта часть
Код:
#include <Date.au3>

Local $sDate = @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN
Local $sMaxDate = StringMid(_DateAdd("d", 1, _NowCalcDate()), 9, 2) & "." & @MON & "." & @YEAR & " " & "02:00"

MouseClick("left", 200, 61)
Sleep(1000)

Send(@TAB & @TAB & @TAB & $sDate & "{ENTER}")
Sleep(500)
Send(@TAB & @TAB & @TAB & $sMaxDate & "{ENTER}")
Sleep(1000)


И отдельно эта часть
Код:
While 1
PixelSearch(42, 193, 72, 204, 000000)
If Not @error Then
Action() 
sleep(180000)
EndIf
Wend
Func Action() 
 MouseClick("left") 
 MouseClick("left") 
 sleep(195000)
send("!k") 
EndFunc

Но если их соединить то вторая часть перестаёт работать.
 

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
Serega1383, а чем вас не устраивает мой вариант в целом виде? А что вы подразумеваете под "перестают работать"? Они "работают вместе" без ошибок. Я так понимаю они не делают то что вам нужно?

Код:
#include <Date.au3>

Local $sDate = @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN, $aCoords
Local $sMaxDate = StringMid(_DateAdd("d", 1, _NowCalcDate()), 9, 2) & "." & @MON & "." & @YEAR & " " & "02:00"

MouseClick("left", 200, 61)
Sleep(1000)

Send(@TAB & @TAB & @TAB & $sDate & "{ENTER}")
Sleep(500)
Send(@TAB & @TAB & @TAB & $sMaxDate & "{ENTER}")
Sleep(1000)

While 1
    $aCoords = PixelSearch(42, 193, 72, 204, 0)
    If Not @error Then
        MouseClick("left", $aCoords[0], $aCoords[1], 2)
        Sleep(195000)
        Send("!k")
		Sleep(180000)
    EndIf
WEnd
 
Автор
S

Serega1383

Новичок
Сообщения
25
Репутация
0
Все разобрался всем спасибо за приложенные усилия.
Ошибка в моей невнимательности.
В MouseClick("left") забыл вписать координаты куда кликать.
 
Верх