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

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


*

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



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

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

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


*******

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Отправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
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
cirus   --lua local ffi = require("ffi") l...   6.10.2021, 2:08
фонарик   Работает работает :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


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

 

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