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

> Распознавание нажатий клавиш клавиатуры
qimer
сообщение 24.8.2020, 14:47
Сообщение #1


*

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



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

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

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


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26717
Пользователь №: 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Отправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
qimer   Распознавание нажатий клавиш клавиатуры   24.8.2020, 14:47
cirus   --lua local ffi = require("ffi") f...   24.8.2020, 15:13
qimer   [spoiler=код][code]--lua local ffi = require...   24.8.2020, 15:21
фонарик   [spoiler=код][code]--lua local ffi = require...   4.10.2021, 16:23
cirus   --lua local ffi = require("ffi") f...   24.8.2020, 15:29
qimer   Спасибо больше, cirus! Что бы я без тебя делал...   24.8.2020, 15:39
qimer   cirus, где-нибудь есть полный список команд для uo...   24.8.2020, 18:51
nykep   cirus, где-нибудь есть полный список команд для u...   25.8.2020, 15:45
Fors1k   Где-нибудь есть полный список команд для uopilot?...   25.8.2020, 18:38
cirus   https://uopilot.uokit.com/wiki/index.php?ti...к_ф...   25.8.2020, 1:48
apaul   local arr, a = findimage (startX, startY, endX, ...   4.10.2021, 20:14
cirus   --lua local ffi = require("ffi") ...   5.10.2021, 1:55
фонарик   Товарищ cirus, спасибо вам, пробел отслеживается к...   5.10.2021, 23:33
sutra   Вообще крайне полезная вещь. У меня с тех пор, как...   6.10.2021, 16:02
фонарик   Работает работает :yahoo: Спасибо вам огромное, ми...   6.10.2021, 20:30
фонарик   Интересно, а есть ли возможность при отслеживании ...   6.10.2021, 21:38
DarkMaster   Насколько мне известно только через глобальные хо...   7.10.2021, 8:13
sutra   Фонарик, даю реально работающий пример работы пров...   7.10.2021, 9:59
Gendalfgreen   Выше написан ООчень интересный код . но почему то ...   22.6.2022, 18:02
DarkMaster   Возможно проблемы с областью. Попробуйте искать ме...   23.6.2022, 22:31


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

 

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