Автор Тема: Помогите, что не так со второй частью скрипта.  (Прочитано 514 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Serega1383 [?]

  • Новичок
  • *
  • Сообщений: 24
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Скрипт жмёт в определённой части браузера, затем табами доходит до определённого окна вписывает сегодняшнюю дату и время, затем табом переходит в следующее окно и выставляет другую дату.
Далее скрипт должен искать по координатам пикселя и припоявлении жать два раза мышкой. Но после установки даты ничего не происходит (с цикла While). По раздельности две части скрипта работают. 
Код: AutoIt [Выделить]
 #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
 

« Последнее редактирование: Февраль 08, 2018, 15:05:21 от Serega1383 »

Русское сообщество AutoIt

Помогите, что не так со второй частью скрипта.
« Отправлен: Февраль 08, 2018, 14:11:12 »

Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 343
  • Репутация: 81
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Serega1383, вы пробовали запускать его из SciTE? И искать ошибки

P.S. Не White, а While и <Date.au3>
« Последнее редактирование: Февраль 08, 2018, 15:03:51 от Tempo »

Оффлайн Serega1383 [?]

  • Новичок
  • *
  • Сообщений: 24

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Там опечатка, пишу с телефона автозамена. Уже исправил.

Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 343
  • Репутация: 81
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Serega1383, а как вы определяете что ничего не происходит? Может просто он не находит пиксель? И еще скрипт кликает по текущим координатам мыши, а не указанным и паузы по 3 минуты после кликов и нахождения пикселя

Попробуйте проверить срабатывает ли условие выводом сообщений в консоль
Код: AutoIt [Выделить]
#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


Русское сообщество AutoIt

Re: Помогите, что не так со второй частью скрипта.
« Ответ #3 Отправлен: Февраль 08, 2018, 15:20:12 »

Оффлайн Serega1383 [?]

  • Новичок
  • *
  • Сообщений: 24

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Первая часть сработала, ввело дату.
Потом вылезла ошибка:
Line 3271 (d:\путь к к скрипту)
Error:unknown functions name.

Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 343
  • Репутация: 81
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Serega1383, запускайте код из SciTE будет видно какая функция отсутствует или где опечатка


Добавлено: Февраль 08, 2018, 16:36:08
И приложите код который вы запускали, а то не очень понятно как вы сделали ошибку при копировании кода с форума
« Последнее редактирование: Февраль 08, 2018, 16:58:39 от Tempo »

Оффлайн Serega1383 [?]

  • Новичок
  • *
  • Сообщений: 24

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Вот тут выдаёт ошибку. Unknown functions name
ConsoleWrite("--> Клик" & @LF)
« Последнее редактирование: Февраль 08, 2018, 18:04:07 от Serega1383 »

Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 343
  • Репутация: 81
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Serega1383, лучше скопируйте все что SciTE выдал в консоль

Русское сообщество AutoIt

Re: Помогите, что не так со второй частью скрипта.
« Ответ #7 Отправлен: Февраль 08, 2018, 18:12:40 »

Оффлайн Serega1383 [?]

  • Новичок
  • *
  • Сообщений: 24

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Так это и есть все. А если вставить от While мою часть. То скрипт работает, но он не жмёт два раза а просто просто прожимает ! K


Добавлено: Февраль 08, 2018, 18:38:44
Короче первая часть с датами работает идеально. Мне надо чтобы после ввода дат скрипт:
Зациклил
1. Постоянно искал чёрный цвет в определённом месте, если нашёл, то
2. нажал в указанное место на него два раза мышкой
3. Подождал 3 минуты
4. Нажал аль+к
« Последнее редактирование: Февраль 08, 2018, 18:38:44 от Serega1383, Причина: Объединение сообщений »

Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 343
  • Репутация: 81
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Serega1383, я так понимаю вы не запускаете скрипт из SciTE

Код: AutoIt [Выделить]
#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



Добавлено: Февраль 08, 2018, 18:48:57
Вы ни разу не упомянули что скрипт должен кликать по найденным координатам хотя знали что скрипт кликает по текущим координатам мыши

И еще скрипт кликает по текущим координатам мыши, а не указанным

Оффлайн Serega1383 [?]

  • Новичок
  • *
  • Сообщений: 24

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Я включал запускал внизу умения было, написано данное сообщение об ошибке. Может я что-то не то в нем жму в scite. Жал ctrl+f7, f7 и f5


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


Добавлено: Февраль 08, 2018, 18:56:21
То есть да нужно чтобы он клика по определённым координатам, а не в текущее

Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 343
  • Репутация: 81
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Serega1383, попробовали скрипт из последнего сообщения? Если будет ошибка о неизвестной функции прикрепите скриншот

Оффлайн Serega1383 [?]

  • Новичок
  • *
  • Сообщений: 24

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Я уже устал, кто нибудь может объяснить почему отдельно работает эта часть
Код: AutoIt [Выделить]
#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)
 


И отдельно эта часть
Код: AutoIt [Выделить]
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 [?]

  • Продвинутый
  • ***
  • Сообщений: 343
  • Репутация: 81
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Serega1383, а чем вас не устраивает мой вариант в целом виде? А что вы подразумеваете под "перестают работать"? Они "работают вместе" без ошибок. Я так понимаю они не делают то что вам нужно?

Код: AutoIt [Выделить]
#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


Оффлайн Serega1383 [?]

  • Новичок
  • *
  • Сообщений: 24

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Все разобрался всем спасибо за приложенные усилия.
Ошибка в моей невнимательности.
В MouseClick("left") забыл вписать координаты куда кликать.

Русское сообщество AutoIt

Re: Помогите, что не так со второй частью скрипта.
« Ответ #14 Отправлен: Февраль 08, 2018, 20:19:37 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
0 Ответов
3077 Просмотров
Последний ответ Март 10, 2010, 00:43:36
от anton1157752
16 Ответов
7641 Просмотров
Последний ответ Май 02, 2010, 19:55:01
от VitAl2013
6 Ответов
3290 Просмотров
Последний ответ Июль 26, 2011, 19:41:18
от yukuru
1 Ответов
1592 Просмотров
Последний ответ Июль 01, 2012, 17:08:27
от Garrett
24 Ответов
8139 Просмотров
Последний ответ Март 18, 2014, 02:39:50
от Dk
5 Ответов
1526 Просмотров
Последний ответ Октябрь 01, 2014, 17:20:15
от alex33
14 Ответов
3151 Просмотров
Последний ответ Август 05, 2016, 10:29:29
от TiranCool
4 Ответов
477 Просмотров
Последний ответ Август 16, 2017, 10:00:08
от Alofa
0 Ответов
214 Просмотров
Последний ответ Ноябрь 10, 2017, 18:10:26
от squiznet
3 Ответов
298 Просмотров
Последний ответ Февраль 21, 2018, 13:18:29
от hedji