Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  1 2 >  
Ответить в эту темуОткрыть новую тему
> Распознавание нажатий клавиш клавиатуры
qimer
сообщение 24.8.2020, 14:47
Сообщение #1


*

Registred
Сообщений: 5
Регистрация: 24.8.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.729



Здравствуйте! Прошерстил вроде бы весь мануал по UOPilot но нигде не нашел как прога могла бы считывать нажатия клавиш. Т.е. к примеру есть такая задача, как отметить окна в игре, и чтобы он именно в них искал некие изображения, а не по всему экрану. И это бы осуществлялось например так: подводишь мышь к левому верхнему углу окна и жмешь "пробел", а потом к правому нижнему и тоже нажимаешь "пробел". Очень необходима эта функция и для других реализаций. Очень не хватает справки по всем возможностям программы. Я очень надеюсь, что такая возможность в ней есть

upd: нашел как реализовать одну клавишу через ascii-коды, а как реализовать например "Alt+1"

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 24.8.2020, 15:13
Сообщение #2


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26702
Пользователь №: 16.971
Возраст: 29



код
Код
--lua
local ffi = require("ffi")
ffi.cdef[[short GetAsyncKeyState(int vKey);]]

function getkeystate(key)
    ffi.C.GetAsyncKeyState(key)
    while ffi.C.GetAsyncKeyState(key) == 0 do wait(10) end    -- ждать пока не нажата клавиша
    while ffi.C.GetAsyncKeyState(key) ~= 0 do wait(10) end    -- ждать пока клавиша нажата
    workwindow(windowfromcursor())  -- сделать рабочим окно под курсором
    return mouse_pos ()   -- получить координаты мыши
end

log 'clear' log 'mode compact'  -- очистить лог


log('Ждём нажатия пробела')
local sx, sy = getkeystate(32)  -- 32 - код клавиши пробел

log('Ждём нажатия пробела')
local ex, ey = getkeystate(32)

log(sx, sy, ex, ey)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
qimer
сообщение 24.8.2020, 15:21
Сообщение #3


*

Registred
Сообщений: 5
Регистрация: 24.8.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.729



Цитата(cirus @ 24.8.2020, 15:13) *

код
Код
--lua
local ffi = require("ffi")
ffi.cdef[[short GetAsyncKeyState(int vKey);]]

function getkeystate(key)
    ffi.C.GetAsyncKeyState(key)
    while ffi.C.GetAsyncKeyState(key) == 0 do wait(10) end    -- ждать пока не нажата клавиша
    while ffi.C.GetAsyncKeyState(key) ~= 0 do wait(10) end    -- ждать пока клавиша нажата
    workwindow(windowfromcursor())  -- сделать рабочим окно под курсором
    return mouse_pos ()   -- получить координаты мыши
end

log 'clear' log 'mode compact'  -- очистить лог
log('Ждём нажатия пробела')
local sx, sy = getkeystate(32)  -- 32 - код клавиши пробел

log('Ждём нажатия пробела')
local ex, ey = getkeystate(32)

log(sx, sy, ex, ey)



cirus, спасибо больше, а как реализовать ожидание клавиш "Alt+1" "Alt+2" "Alt+3"? Чисто код функции
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 24.8.2020, 15:29
Сообщение #4


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26702
Пользователь №: 16.971
Возраст: 29



код
Код
--lua
local ffi = require("ffi")
ffi.cdef[[short GetAsyncKeyState(int vKey);]]

function getkeystate(key, key2)
    ffi.C.GetAsyncKeyState(key)
    while ffi.C.GetAsyncKeyState(key) == 0 or ffi.C.GetAsyncKeyState(key2) == 0 do wait(10) end  
    while ffi.C.GetAsyncKeyState(key) ~= 0 do wait(10) end  
    workwindow(windowfromcursor())  -- сделать рабочим окно под курсором
    return mouse_pos ()   -- получить координаты мыши
end

log 'clear' log 'mode compact'  -- очистить лог



local sx, sy = getkeystate(18, 49)  -- alt + 1
local ex, ey = getkeystate(18, 50)  -- alt + 2

log(sx, sy, ex, ey)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
qimer
сообщение 24.8.2020, 15:39
Сообщение #5


*

Registred
Сообщений: 5
Регистрация: 24.8.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.729



Спасибо больше, cirus! Что бы я без тебя делал =)
upd: Ошибка моя была в том, что вместо "или" я в условие ставил "и". А так я примерно так и писал.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
qimer
сообщение 24.8.2020, 18:51
Сообщение #6


*

Registred
Сообщений: 5
Регистрация: 24.8.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.729




cirus, где-нибудь есть полный список команд для uopilot? У меня очередная проблема. Заключается в следующем: я запускаю скрипт, привязываю кликер к окну игры и делаю например getimage, saveimage, а через некоторое время, когда картинка в игре поменялась делаю снова getimage, saveimage но уже в другой файл, то изображения идентичные. Т. е. будто он в начале запомнил изображение и новый вызов getimage его не меняет в памяти. Игра Wurm Online. Там есть прогрессбары стамина, крафтинг, еда, вода. Мне нужно отслеживать изменения в них, а именно, если цвет точки поменялся, то выполнять некие действия, например попить воды. Проблема только в том, чтобы считывать не статичную картинку, а меняющуюся. Помоги плиз. На примере Clickermann там есть функция обновления экрана в памяти и там эти изменения считываются, но функционал убогий очень и медленный
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 25.8.2020, 1:48
Сообщение #7


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26702
Пользователь №: 16.971
Возраст: 29



Цитата
где-нибудь есть полный список команд для uopilot?

https://uopilot.uokit.com/wiki/index.php?ti...к_функций_(Lua)
Если каких-то функций нет, то можно через ffi вызвать любую функцию winapi.
Цитата
нужно отслеживать изменения

Код
--lua
log 'clear' log 'mode compact'

local window = workwindow()
local startX, startY, endX, endY = 90, 108 , 144, 158   -- координаты
local address = getimage (startX, startY, endX, endY, window)  -- запомнили изображение

log('Ждём когда изображение изменится')
while true do
    local arr, a = findimage (startX, startY, endX, endY, {address}, window)  -- поиск
    if arr == nil then  -- если не найдено значит изображение изменилось
        break           -- выход из цикла
    end
    wait(100)
end
log('Изображение изменилось')
deleteimage (address)   -- удалить картинку
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 25.8.2020, 15:45
Сообщение #8


****

Apprentice
Сообщений: 233
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1195
Пользователь №: 15.246
Возраст: 25



Цитата(qimer @ 24.8.2020, 18:51) *

cirus, где-нибудь есть полный список команд для uopilot? У меня очередная проблема. Заключается в следующем: я запускаю скрипт, привязываю кликер к окну игры и делаю например getimage, saveimage, а через некоторое время, когда картинка в игре поменялась делаю снова getimage, saveimage но уже в другой файл, то изображения идентичные. Т. е. будто он в начале запомнил изображение и новый вызов getimage его не меняет в памяти. Игра Wurm Online. Там есть прогрессбары стамина, крафтинг, еда, вода. Мне нужно отслеживать изменения в них, а именно, если цвет точки поменялся, то выполнять некие действия, например попить воды. Проблема только в том, чтобы считывать не статичную картинку, а меняющуюся. Помоги плиз. На примере Clickermann там есть функция обновления экрана в памяти и там эти изменения считываются, но функционал убогий очень и медленный

если тебе надо отслеживать цвет точки так и напиши просто if или while с цветом точки зачем тебе findimage
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 25.8.2020, 18:38
Сообщение #9


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2398
Пользователь №: 18.746



Цитата(qimer @ 24.8.2020, 18:51) *

Где-нибудь есть полный список команд для uopilot?

Вся нужная информация собрана в одном месте https://forum.uokit.com/index.php?showtopic=70302 .
Перед созданием темы/вопроса заглядывайте сюда.


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
фонарик
сообщение 4.10.2021, 16:23
Сообщение #10


****

Apprentice
Сообщений: 145
Регистрация: 23.11.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.305



Цитата(cirus @ 24.8.2020, 15:13) *

код
Код
--lua
local ffi = require("ffi")
ffi.cdef[[short GetAsyncKeyState(int vKey);]]

function getkeystate(key)
    ffi.C.GetAsyncKeyState(key)
    while ffi.C.GetAsyncKeyState(key) == 0 do wait(10) end    -- ждать пока не нажата клавиша
    while ffi.C.GetAsyncKeyState(key) ~= 0 do wait(10) end    -- ждать пока клавиша нажата
    workwindow(windowfromcursor())  -- сделать рабочим окно под курсором
    return mouse_pos ()   -- получить координаты мыши
end

log 'clear' log 'mode compact'  -- очистить лог
log('Ждём нажатия пробела')
local sx, sy = getkeystate(32)  -- 32 - код клавиши пробел

log('Ждём нажатия пробела')
local ex, ey = getkeystate(32)

log(sx, sy, ex, ey)

Подскажите пожалуйста, как правильно сделать так, чтобы ваш скрипт не останавливался? Мне нужно чтобы он срабатывал каждый раз, когда я нажимаю пробел и работал пока я его сам не остановлю (IMG:style_emoticons/default/unsure.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
apaul
сообщение 4.10.2021, 20:14
Сообщение #11


**

Neophyte
Сообщений: 36
Регистрация: 19.8.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 20.051



Цитата(cirus @ 25.8.2020, 1:48) *

local arr, a = findimage (startX, startY, endX, endY, {address}, window) -- поиск

Какая полезная штука (IMG:style_emoticons/default/smile.gif).
Только у меня почему-то пример пролетает сразу в "Изображение изменилось", настраиваю для теста кусок фона на форуме. Вроде он здесь статичный. Можно как-то понять, что ему не нравится?

Заодно стало интересно, а как findimage понимает в таком вызове размер шаблона поиска, ведь ему передается чисто его адрес в памяти?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 5.10.2021, 1:55
Сообщение #12


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26702
Пользователь №: 16.971
Возраст: 29



Цитата
как правильно сделать так, чтобы ваш скрипт не останавливался?

Код
--lua
local ffi = require("ffi")
ffi.cdef[[short GetAsyncKeyState(int vKey);]]

function getkeystate(key)
    ffi.C.GetAsyncKeyState(key)
    while ffi.C.GetAsyncKeyState(key) == 0 do wait(10) end    -- ждать пока не нажата клавиша
    while ffi.C.GetAsyncKeyState(key) ~= 0 do wait(10) end    -- ждать пока клавиша нажата
    workwindow(windowfromcursor())  -- сделать рабочим окно под курсором
    return mouse_pos ()   -- получить координаты мыши
end

log 'clear' log 'mode compact'  -- очистить лог

while true do
    log('Ждём нажатия пробела1')
    local sx, sy = getkeystate(32)  -- 32 - код клавиши пробел

    log('Ждём нажатия пробела2')
    local ex, ey = getkeystate(32)

    log(sx, sy, ex, ey)
end
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
фонарик
сообщение 5.10.2021, 23:33
Сообщение #13


****

Apprentice
Сообщений: 145
Регистрация: 23.11.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.305



Товарищ cirus, спасибо вам, пробел отслеживается когда нажимается. Подскажите пожалуйста, а как сделать если надо отслеживать нажатие на одну из 2х или 3х клавиш? Например, отслеживать нажатие либо пробела, либо клавиши 1, либо клавиши 2? И в зависимости от события иметь возможность выполнить разный код (IMG:style_emoticons/default/unsure.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 6.10.2021, 2:08
Сообщение #14


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26702
Пользователь №: 16.971
Возраст: 29



Код
--lua
local ffi = require("ffi")
local VK_1_Key = 0x31
local VK_2_Key = 0x32
local VK_SPACE = 0x20
ffi.cdef[[short GetKeyState(int vKey);]]

function getkeystate(key)
    if bit.band(ffi.C.GetKeyState(key), 256) ~= 0 then    -- если клавиша нажата
        while bit.band(ffi.C.GetKeyState(key), 256) ~= 0 do wait(10) end  -- ждать когда клавиша будет отпущена
        return true
    end
    return nil
end

log 'clear' log 'mode compact'  -- очистить лог

while true do
    if getkeystate(VK_SPACE) then  -- если нажат пробел
        log ('Пробел')
    end
    if getkeystate(VK_1_Key) then  -- клавиша 1
        log ('1')
    end
    if getkeystate(VK_2_Key) then  -- клавиша 2
        log ('2')
    end

    wait (10)
end
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 6.10.2021, 16:02
Сообщение #15


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Вообще крайне полезная вещь. У меня с тех пор, как я перешёл на новый getimage, стали почему то глючить горячие клавиши Пилота. Запуск скрипта по ним без проблем, а вот с остановкой бывают проблемы. То он пишет что модуль не найден, а иногда и просто виснет. Плюнул, сделал прерывание работы скрипта путём анализа нажатия клавиш. Но у меня было чуть по другому сделано, не как предложил Cirus. Решил на практике поэкспериментировать с битовыми операциями (а то всегда путаю где младший байт, а где старший) и натолкнулся на другой забавный глюк. Интересно было бы понять причину. Предлагаемый пример скрипта при первом запуске работает как надо, а вот если запустить повторно, будет ждать нажатия клавиши CTRL, хотя чётко прописан останов скрипта.
код
Код

--lua
log "clear" log "mode compact"
local ffi = require("ffi")
ffi.cdef[[short GetKeyState(int vKey);]]
function getkeystate(key)
  if bit.band(ffi.C.GetKeyState(key), 256) ~= 0 then  return true
      else  return false
  end
end

local x=255+122
log(bit.band(x,256))
stop_script()

while true do  -- ждём нажатия CTRL
  if getkeystate(17) then break end
end
while true do  -- ждём отпускания CTRL
  if not(getkeystate(17)) then break end
end




Хотя я не удивлюсь если только у меня некорректно работает остановка работы скриптов.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
фонарик
сообщение 6.10.2021, 20:30
Сообщение #16


****

Apprentice
Сообщений: 145
Регистрация: 23.11.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.305



Работает работает (IMG:style_emoticons/default/yahoo.gif) Спасибо вам огромное, мистер cirus (IMG:style_emoticons/default/thanks.gif) Все что хотел - сделал, с вашей помощью (IMG:style_emoticons/default/cool.gif)

sutra, ваш пример у меня работает через раз (IMG:style_emoticons/default/unsure.gif) Опытным путем я заметил, что и скрипт товарища cirus начинает работать тоже через раз, если в его примере поменять 256 на 35. Не знаю что это такое за волшебное число и зачем оно, но работа через раз с этим параметром как-то связана, как мне кажется, на мой непрофессиональный взгляд (IMG:style_emoticons/default/smile.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
фонарик
сообщение 6.10.2021, 21:38
Сообщение #17


****

Apprentice
Сообщений: 145
Регистрация: 23.11.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.305



Интересно, а есть ли возможность при отслеживании нажатия клавиши, после определения события её нажатия, само нажатие клавиши заблокировать? Т.е я нажимаю например 1, срабатывает скрипт, которому прописан код на случай нажатия клавиши 1. Но и в игре при этом нажимается также клавиша 1, что печатает символ в чат. Очень бы хотелось чтобы в самом активном окне ничего не печаталось. В самом пилоте например, если настроить быструю клавишу какому-то скрипту на 1, то при её нажатии в игре ничего не печатается, символ блокируется, а старт скрипта всегда срабатывает.

А еще возникла проблема, если нажать ктрл+1 или альт+1, то срабатывает событие на клавишу 1. Можно ли как-то различать эти нажатия? Чтобы событие на клавишу 1, 2 или другую - при комбинированном нажатии с контролом или альтом не срабатывало?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 7.10.2021, 8:13
Сообщение #18


***********

Модератор UOPilot
Сообщений: 9.465
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27680
Пользователь №: 11.279



Цитата
Интересно, а есть ли возможность при отслеживании нажатия клавиши, после определения события её нажатия, само нажатие клавиши заблокировать? Т.е я нажимаю например 1, срабатывает скрипт, которому прописан код на случай нажатия клавиши 1. Но и в игре при этом нажимается также клавиша 1, что печатает символ в чат. Очень бы хотелось чтобы в самом активном окне ничего не печаталось. В самом пилоте например, если настроить быструю клавишу какому-то скрипту на 1, то при её нажатии в игре ничего не печатается, символ блокируется, а старт скрипта всегда срабатывает.

Насколько мне известно только через глобальные хоткеи. Т.е. создается N хоткеев, заворачивается на пилот - дальше можете эти эвенты отслеживать или статус клавиш. Не сработает если игра отслеживается не эвенты, а так же статус клавиш.

Цитата
А еще возникла проблема, если нажать ктрл+1 или альт+1, то срабатывает событие на клавишу 1. Можно ли как-то различать эти нажатия? Чтобы событие на клавишу 1, 2 или другую - при комбинированном нажатии с контролом или альтом не срабатывало?

Точно так же сделать проверку нажатия клавиши контрола либо других модификаторов. Теоретически возможна ошибка если между проверкой модификатора и клавиши изменится состояние модификатора или клавиши. Чтобы этого избежать можно дополнительно ориентироваться на второй параметр возвращаемый получением статуса (toggle) из кода здесь https://forum.uokit.com/index.php?s=&sh...st&p=431321


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 7.10.2021, 9:59
Сообщение #19


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Фонарик, даю реально работающий пример работы проверки клавиш. Именно проверки, а не перехвата. Он реально нужен тебе? Используй уникальные клавиши для варьирования своего кода. Про 256 - это число у которого младший байт равен нулю - оно требуется для проверки старшего байта возвращаемого функцией результата. Функции GetKeyState и GetAsyncKeyState различны, можешь посмотреть какая тебе лично больше нравится. GetAsyncKeyState учитывает была ли клавиша нажата начиная с ПОСЛЕДНЕГО вызова функции GetAsyncKeyState и позволяет также отслеживать клавиши мыши.
код
Код

--lua
log "clear" log "mode compact"
local ffi = require("ffi")
ffi.cdef[[short GetKeyState(int vKey);]]
function getkeystate(key)
  if bit.band(ffi.C.GetKeyState(key), 256) ~= 0 then  return true
      else  return false
  end
end

local function CheckStatus(key1,key2,key3) -- Проверка нажатия от 1-ой до 3-х клавиш
  if getkeystate(key1)then
    if not(key2)or getkeystate(key2)then
      if not(key3)or getkeystate(key3)then  return  true  end
    end
  end
  return false
end

local function WaitStatus(key1,key2,key3) -- Ожидание нажатия и отпускания от 1-ой до 3-х клавиш
while true do   -- Этот цикл нужен если требуется ожидание нажатий
  while key2 do
    while key3 do
      if getkeystate(key3) then break end
    end
    if getkeystate(key2) then break end
  end
  if getkeystate(key1) then break end
end
-- Ниже ожидание отпускания клавиш (чтобы скрипт не "понёсся" дальше)
while true do
  while key2 do
    while key3 do
      if not(getkeystate(key3)) then break end
    end
    if not(getkeystate(key2)) then break end
  end
  if not(getkeystate(key1)) then break end
end
end

while true do
  if CheckStatus(17,49) then   -- Если CTRL-1 - выполняем код №1
    WaitStatus(17,49)  log("Code#1")
  end
  if CheckStatus(17,50) then   -- Если CTRL-2 - выполняем код №2
    WaitStatus(17,50)  log("Code#2")
  end
  if CheckStatus(17,51) then   -- Если CTRL-3 - выполняем код №3
    WaitStatus(17,51)  log("Code#3")
  end
  if CheckStatus(17,18,16)then   -- Если CTRL+ALT+SHIFT - выход из цикла
     log("End work")
     break
  end
end

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Gendalfgreen
сообщение 22.6.2022, 18:02
Сообщение #20


**

Neophyte
Сообщений: 18
Регистрация: 29.3.2022
Группа: Пользователи
Наличность: 0
Пользователь №: 20.219
Возраст: 30



Выше написан ООчень интересный код . но почему то не работает??
Не подскажите в в чем может быть дело?

--lua
log 'clear' log 'mode compact'

local window = workwindow()
local startX, startY, endX, endY = 90, 108 , 144, 158 -- координаты
local address = getimage (startX, startY, endX, endY, window) -- запомнили изображение

log('Ждём когда изображение изменится')
while true do
local arr, a = findimage (startX, startY, endX, endY, {address}, window) -- поиск
if arr == nil then -- если не найдено значит изображение изменилось
break -- выход из цикла
end
wait(100)
end
log('Изображение изменилось')
deleteimage (address) -- удалить картинку
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

2 страниц V  1 2 >
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 19.4.2024, 5:43
Designed by Nickostyle