|
|
|
CapsLock On, Проверка статуса нажатия/включения |
|
|
Levo222 |
26.2.2019, 0:55
|
Journeyman
Сообщений: 399
Регистрация: 18.11.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.689
|
Задача сделать клавишу автобега в игре где её нет. Проверка включены ли статусные клавиши и автонажатие клавиш движения Скрипт определения включенности Caps Lock X2t
У кого-то может работать send217_down/send_down, у меня работает только sendex_down/up, ввиду несостыковки системы с Lua Код --lua do local back = package.path package.path = "luaPlugins\\winapi\\?.lua;"..package.path setfenv(1, require'winapi') require[[winapi.keyboard]] package.path = back end
-- Поолучаем состояние клавиши: -- state - нажата/отжата -- toggle - для лампочек горит/не горит. local pressed_down = false while 1 do local state, toggle = GetKeyState(0x14) log(tostring(state),tostring(toggle)) if toggle then -- горит капс log("CapsLock on") if not pressed_down then log("not pressed_down") log("Зажимаю W") log("Ждём 3 сек") --send217_down ("w") sendex_down ("w") pressed_down = true end else if pressed_down then --send217_up ("w") sendex_up ("w") pressed_down = false end end wait (100) end
-- РЕШЕНО --
|
|
|
|
DarkMaster |
26.2.2019, 1:44
|
Модератор UOPilot
Сообщений: 9.465
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 27680
Пользователь №: 11.279
|
Есть хорошая новость - я научился из луа дергать состояние клавиш и капса в том числе: Код do -- У меня пути не стандартные, чтобы избежать свинарника. -- Поэтому тут есть пара "лишних" строк. -- Сохраняем _текущие_ пути по которым ищутся модули. local back = package.path -- Дописываю путь по которому у меня лежат модули. package.path = "luaPlugins\\winapi\\?.lua;"..package.path -- Подгружаем собственно модуль. -- Хз почему, но грузить нужно именно так. -- Просто require'winapi' не пашет. setfenv(1, require'winapi') -- Подгружаем кусок отвечающий за клавиатуру require[[winapi.keyboard]] -- Возвращаем пути поиска модулей на исходные. package.path = back end
-- Поолучаем состояние клавиши: -- state - нажата/отжата -- toggle - для лампочек горит/не горит. local state, toggle = GetKeyState(0x14) log(tostring(state),tostring(toggle)) Плохая новость в том, что это тут никак не поможет) Пошел искать выдергивание статуса дальше.
If the low-order bit is 1, the key is toggled. A key, such as the CAPS LOCK key, is toggled if it is turned on. The key is off and untoggled if the low-order bit is 0. A toggle key's indicator light (if any) on the keyboard will be on when the key is toggled, and off when the key is untoggled. Оригинальненько, учитывая, что возвращается true/false... Ну и битовые операторы подтягивать тоже забавно =\Отбой панике - возвращается вторым параметром. Код поправил. Тебя интересует в данном случае toggle. Дерагать либы отсюда: https://luapower.com/winapi/downloadhttps://luapower.com/glue/downloadВторая необходима для работы winapi. Будь внимателен с адресами. У меня все это дело лежит по адресу luaPlugins\winapi, что явным образом указывается при подргузке либы (потом адреса поиска возвращаются в исходное состояние). Сообщение отредактировал DarkMaster - 26.2.2019, 2:00
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
sutra |
26.2.2019, 2:42
|
Adept
Сообщений: 923
Регистрация: 10.8.2018 Группа: Пользователи Наличность: 0
Пользователь №: 19.007
|
Цитата Взял из демки в доках к либе. Распутывать всю либу, как и на что он завязал не буду точно =) В этом и заключается профессионализм. Знаешь где взять, знаешь как применить. Собственно так нас и учили, только я плохо учился, прогуливал ... Всех нас точно победит искусственный интеллект, если мы этому будем потворствовать. Потому, что эрудиция в ближайшем будущем, будет важнее интеллекта. Количество информации (нужной и на хрен не нужной) нарастает как снежный ком. И без этой информации интеллект - это просто овца. Инструментарий расширяется, стандартов - нет. С одной стороны, вроде делается для людей, с другой стороны, люди - это просто тупые потребители. И даже самые продвинутые очень быстро окажутся в том же стаде. Куча хлама, тащится за первопроходцами, сохраняется совместимость. Каждый норовит создать СВОЁ (очередной хлам). Давно пора перейти на полноценные 64 бита и выбросить весь остальной хлам. Хотя я бы наверное сразу бы перешёл на 512 бит, по крайней мере предусмотрел это. Я видел, как это развивалось. Сначала 8 бит, потом 16, потом псевдо 20 бит (сегмент и смещение) ... И что? остановилось? Может мы лет через 100 (а может и через 15) будем мерять расстояние до Солнца в ангстремах. В каких битах это будем измерять? Ну я уже буду ТАМ и смотреть как вы будете решать эти вопросы.
|
|
|
|
sutra |
26.2.2019, 3:14
|
Adept
Сообщений: 923
Регистрация: 10.8.2018 Группа: Пользователи Наличность: 0
Пользователь №: 19.007
|
Оверлеи, кэши, хеши. Что-то уже история, что-то предстоит пересмотреть. Уверен, скоро не будет проблем с памятью, всё дешевеет при переходе на массовое потребление. Нужны универсальные, простые и доступные инструменты. А нам ещё до сих пор продают дефрагментаторы, RAM-диски, антивирусы и прочий хлам. Хотя давно существуют простые решения данных проблем. Нет нормальной преемственности в среде программирования и здесь теперь расслоение на бедных и богатых. Есть супер-технологии, но они только для избранных. С одной стороны есть уже умные роботы, а c другой стороны мы всё думаем как распознать CapsLock.
|
|
|
|
xolost |
26.2.2019, 4:01
|
Expert
Сообщений: 517
Регистрация: 17.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.035
|
Цитата(sutra @ 26.2.2019, 3:14) Оверлеи, кэши, хеши. Что-то уже история, что-то предстоит пересмотреть. Уверен, скоро не будет проблем с памятью, всё дешевеет при переходе на массовое потребление. Нужны универсальные, простые и доступные инструменты. А нам ещё до сих пор продают дефрагментаторы, RAM-диски, антивирусы и прочий хлам. Хотя давно существуют простые решения данных проблем. Нет нормальной преемственности в среде программирования и здесь теперь расслоение на бедных и богатых. Есть супер-технологии, но они только для избранных. С одной стороны есть уже умные роботы, а c другой стороны мы всё думаем как распознать CapsLock.
Всё дело в том, что умному роботу не нужно распознавать CapsLock =)
|
|
|
|
xolost |
26.2.2019, 4:13
|
Expert
Сообщений: 517
Регистрация: 17.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.035
|
Цитата(sutra @ 26.2.2019, 4:06) Абсолютно логично, он же умный, а я ... не очень, но кнопку у робота наверное найду, хотя Урри не смог найти (из "Приключения электроника").
Про электроника мог бы и не уточнять (IMG: style_emoticons/default/wink.gif) На самом деле это какой-то коллапс реалий. Действительно, частенько бывает, какие-то сложнейшие задачи решаешь быстро, четко, без проблем идет. А затем нужно решить какую-то тупейшую и казалось бы простейшую задачу из серии капслока и бьешься днями над ней. Это ужасно.
|
|
|
|
Levo222 |
26.2.2019, 7:05
|
Journeyman
Сообщений: 399
Регистрация: 18.11.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.689
|
Цитата(sutra @ 26.2.2019, 5:26) Нужно подключить уже готовую библиотеку по обработке клавиатуры. Я не тестировал, но вроде там всё это есть. Ну и определиться, если переходим на lua - давайте учиться. Синтаксис отличается, хоть и не принципиально, но отличается. Если lua - придётся забыть про goto, ну и так, по мелочи ... https://forum.uokit.com/index.php?showtopic=68111Так у меня 2 вопроса: 1. Плагины оба загружать? И не будет ли конфликта если кинуть всё в 1 папку? 2. С какой версии будет работать всё вышеперечисленное без косяков? у меня 2.39 Цитата(xolost @ 26.2.2019, 8:01) Всё дело в том, что умному роботу не нужно распознавать CapsLock =)
Будущее за голосовым движком. findVoice Т.е. управление командами речи
|
|
|
|
Levo222 |
26.2.2019, 7:17
|
Journeyman
Сообщений: 399
Регистрация: 18.11.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.689
|
Цитата(DarkMaster @ 26.2.2019, 5:44) по адресу luaPlugins\winapi
Кириллица не пойдёт? Цитата(cirus @ 31.5.2017, 19:07) Автор плагина Cockney. KB.zip Кидать(распаковать) в папку Plugins, которая рядом с пилот должна быть создана.
----- Так как будет выглядеть целиком скрипт? Код --Lua require("Kbd") local print = log do local back = package.path package.path = "luaPlugins\\winapi\\?.lua;"..package.path setfenv(1, require'winapi') require[[winapi.keyboard]] package.path = back end -- state - нажата/отжата -- toggle - для лампочек горит/не горит. local state, toggle = GetKeyState(0x14) log(tostring(state),tostring(toggle))
while 1 do if Toggle = 1 then Send217_down W log("CapsLock On") end_while Что-то не работает (IMG:https://i.ibb.co/Jvgy3v2/12.jpg)
Эскизы прикрепленных изображений
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|