|
|
|
Как зайдествовать все клавиши по 1 нажатию |
|
|
Pinople |
25.8.2022, 17:43
|
Registred
Сообщений: 7
Регистрация: 1.2.2022 Группа: Пользователи Наличность: 0
Пользователь №: 20.183
Возраст: 30
|
Здравствуйте, как создать условие для нажатой кнопки к примеру мне нужно при каждом разе когда я нажимаю цифру F1 нужно задействовать F1,F2,F3,F4,F5,F6,F7 но так что бы скрипт не повторял эти действия через определенный промежуток времени а только по нажатию самой кнопки то есть скрипт должен работать без остановки и ждать когда я нажму F1 и только тогда он должен задействовать все эти кнопки примерно вот так вот я пытался сделать Код --lua Local Send VK_F1 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76
нашол что та похожее будет работать такое? Код --lua while 1 do if IsKeyPress(F1) then Send {F1, F2, F3, F4, F5, F6, F7} wait (300) end wait (20) end Код /* Virtual key alias Hex-value */ #define VK_LBUTTON 0x01 //Left mouse button #define VK_RBUTTON 0x02 //Right mouse button #define VK_CANCEL 0x03 #define VK_MBUTTON 0x04 //Middle mouse button #define VK_XBUTTON1 0x05 //Mouse4 thumb button (back) #define VK_XBUTTON2 0x06 //Mouse5 thumb button (forward)
/* * 0x07 : unassigned */
#define VK_BACK 0x08 #define VK_TAB 0x09
/* * 0x0A - 0x0B : reserved */
#define VK_CLEAR 0x0C #define VK_RETURN 0x0D
#define VK_SHIFT 0x10 #define VK_CONTROL 0x11 #define VK_MENU 0x12 #define VK_PAUSE 0x13 #define VK_CAPITAL 0x14
#define VK_ESCAPE 0x1B
#define VK_CONVERT 0x1C #define VK_NONCONVERT 0x1D #define VK_ACCEPT 0x1E #define VK_MODECHANGE 0x1F
#define VK_SPACE 0x20 #define VK_PRIOR 0x21 #define VK_NEXT 0x22 #define VK_END 0x23 #define VK_HOME 0x24 #define VK_LEFT 0x25 #define VK_UP 0x26 #define VK_RIGHT 0x27 #define VK_DOWN 0x28 #define VK_SELECT 0x29 #define VK_EXECUTE 0x2B #define VK_SNAPSHOT 0x2C #define VK_INSERT 0x2D #define VK_DELETE 0x2E #define VK_HELP 0x2F
/* * VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39) * 0x40 : unassigned * VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A) */
#define VK_LWIN 0x5B #define VK_RWIN 0x5C #define VK_APPS 0x5D
/* * 0x5E : reserved */
#define VK_SLEEP 0x5F
#define VK_NUMPAD0 0x60 #define VK_NUMPAD1 0x61 #define VK_NUMPAD2 0x62 #define VK_NUMPAD3 0x63 #define VK_NUMPAD4 0x64 #define VK_NUMPAD5 0x65 #define VK_NUMPAD6 0x66 #define VK_NUMPAD7 0x67 #define VK_NUMPAD8 0x68 #define VK_NUMPAD9 0x69 #define VK_MULTIPLY 0x6A #define VK_ADD 0x6B #define VK_SEPARATOR 0x6C #define VK_SUBTRACT 0x6D #define VK_DECIMAL 0x6E #define VK_DIVIDE 0x6F #define VK_F1 0x70 #define VK_F2 0x71 #define VK_F3 0x72 #define VK_F4 0x73 #define VK_F5 0x74 #define VK_F6 0x75 #define VK_F7 0x76 #define VK_F8 0x77 #define VK_F9 0x78 #define VK_F10 0x79 #define VK_F11 0x7A #define VK_F12 0x7B #define VK_F13 0x7C #define VK_F14 0x7D #define VK_F15 0x7E #define VK_F16 0x7F #define VK_F17 0x80 #define VK_F18 0x81 #define VK_F19 0x82 #define VK_F20 0x83 #define VK_F21 0x84 #define VK_F22 0x85 #define VK_F23 0x86 #define VK_F24 0x87
/* * 0x88 - 0x8F : unassigned */
#define VK_NUMLOCK 0x90 #define VK_SCROLL 0x91
/* * 0x97 - 0x9F : unassigned */
#define VK_LSHIFT 0xA0 #define VK_RSHIFT 0xA1 #define VK_LCONTROL 0xA2 #define VK_RCONTROL 0xA3 #define VK_LMENU 0xA4 #define VK_RMENU 0xA5 Сообщение отредактировал DarkMaster - 25.8.2022, 18:43
|
|
|
|
DarkMaster |
26.8.2022, 9:35
|
Модератор UOPilot
Сообщений: 9.568
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 28530
Пользователь №: 11.279
|
Второй вариант был самым близким) Для второго варианта обязательно подключение модулей. Не до конца понятно нужно ли вам, чтобы клавиши оставались зажатыми пока вы держите f1, или просто быстро нажались. Подозреваю, что просто быстрое нажатие. Код --lua local ffi = require("ffi") ffi.cdef[[short GetAsyncKeyState(int vKey); void Sleep(int ms); ]] local C = ffi.C
while true do -- 112 - это код клавиши F1. if C.GetAsyncKeyState(112) ~= 0 then -- если нажата левая кнопка мыши log("Нажали") -- F1 не нажимаем - мы ее и так нажали. send("{F2}") send("{F3}") send("{F4}") send("{F5}") send("{F6}") send("{F7}") while C.GetAsyncKeyState(112) ~= 0 do C.Sleep(1) end -- ждать пока она нажата end C.Sleep(1) end
Если нужно будет получить код другой клавиши используйте скрипт: key
Код --lua local key = { mouse_1 = 0x01, -- VK_LBUTTON Left mouse button mouse_2 = 0x02, -- VK_RBUTTON Right mouse button --0x03 -- VK_CANCEL Control-break processing mouse_middle = 0x04, -- VK_MBUTTON Middle mouse button (three-button mouse) mouse_4 = 0x05, -- VK_XBUTTON1 X1 mouse button mouse_5 = 0x06, -- VK_XBUTTON2 X2 mouse button --0x07 -- Undefined backspace = 0x08, -- VK_BACK BACKSPACE key tab = 0x09, -- VK_TAB TAB key --0x0A-0B -- Reserved --0x0C -- VK_CLEAR CLEAR key enter = 0x0D, -- VK_RETURN ENTER key --0x0E-0F -- Undefined shift = 0x10, -- VK_SHIFT SHIFT key ctrl = 0x11, -- VK_CONTROL CTRL key alt = 0x12, -- VK_MENU ALT key pause = 0x13, -- VK_PAUSE PAUSE key caps_lock = 0x14, -- VK_CAPITAL CAPS LOCK key --0x15 -- VK_KANA IME Kana mode --0x15 -- VK_HANGUEL IME Hanguel mode (maintained for compatibility; use VK_HANGUL) --0x15 -- VK_HANGUL IME Hangul mode --0x16 -- Undefined --0x17 -- VK_JUNJA IME Junja mode --0x18 -- VK_FINAL IME final mode --0x19 -- VK_HANJA IME Hanja mode --0x19 -- VK_KANJI IME Kanji mode --0x1A -- Undefined esc = 0x1B, -- VK_ESCAPE ESC key escape = 0x1B, -- VK_ESCAPE ESC key --0x1C -- VK_CONVERT IME convert --0x1D -- VK_NONCONVERT IME nonconvert --0x1E -- VK_ACCEPT IME accept --0x1F -- VK_MODECHANGE IME mode change request spacebar = 0x20, -- VK_SPACE SPACEBAR page_up = 0x21, -- VK_PRIOR PAGE UP key page_down = 0x22, -- VK_NEXT PAGE DOWN key ["end"] = 0x23, -- VK_END END key _end = 0x23, -- VK_END END key home = 0x24, -- VK_HOME HOME key left = 0x25, -- VK_LEFT LEFT ARROW key up = 0x26, -- VK_UP UP ARROW key right = 0x27, -- VK_RIGHT RIGHT ARROW key down = 0x28, -- VK_DOWN DOWN ARROW key --0x29 -- VK_SELECT SELECT key --0x2A -- VK_PRINT PRINT key --0x2B -- VK_EXECUTE EXECUTE key print_screen = 0x2C, -- VK_SNAPSHOT PRINT SCREEN key insert = 0x2D, -- VK_INSERT INS key delete = 0x2E, -- VK_DELETE DEL key --0x2F -- VK_HELP HELP key ["0"] = 0x30, -- 0 key ["1"] = 0x31, -- 1 key ["2"] = 0x32, -- 2 key ["3"] = 0x33, -- 3 key ["4"] = 0x34, -- 4 key ["5"] = 0x35, -- 5 key ["6"] = 0x36, -- 6 key ["7"] = 0x37, -- 7 key ["8"] = 0x38, -- 8 key ["9"] = 0x39, -- 9 key --0x3A-40 -- Undefined a = 0x41, -- A key b = 0x42, -- B key c = 0x43, -- C key d = 0x44, -- D key e = 0x45, -- E key f = 0x46, -- F key g = 0x47, -- G key h = 0x48, -- H key i = 0x49, -- I key j = 0x4A, -- J key k = 0x4B, -- K key l = 0x4C, -- L key m = 0x4D, -- M key n = 0x4E, -- N key o = 0x4F, -- O key p = 0x50, -- P key q = 0x51, -- Q key r = 0x52, -- R key s = 0x53, -- S key t = 0x54, -- T key u = 0x55, -- U key v = 0x56, -- V key w = 0x57, -- W key x = 0x58, -- X key y = 0x59, -- Y key z = 0x5A, -- Z key A = 0x41, -- A key B = 0x42, -- B key C = 0x43, -- C key D = 0x44, -- D key E = 0x45, -- E key F = 0x46, -- F key G = 0x47, -- G key H = 0x48, -- H key I = 0x49, -- I key J = 0x4A, -- J key K = 0x4B, -- K key L = 0x4C, -- L key M = 0x4D, -- M key N = 0x4E, -- N key O = 0x4F, -- O key P = 0x50, -- P key Q = 0x51, -- Q key R = 0x52, -- R key S = 0x53, -- S key T = 0x54, -- T key U = 0x55, -- U key V = 0x56, -- V key W = 0x57, -- W key X = 0x58, -- X key Y = 0x59, -- Y key Z = 0x5A, -- Z key win = 0x5B, -- VK_LWIN Left Windows key (Natural keyboard) --0x5C -- VK_RWIN Right Windows key (Natural keyboard) --0x5D -- VK_APPS Applications key (Natural keyboard) --0x5E -- Reserved sleep = 0x5F, -- VK_SLEEP Computer Sleep key num_0 = 0x60, -- VK_NUMPAD0 Numeric keypad 0 key num_1 = 0x61, -- VK_NUMPAD1 Numeric keypad 1 key num_2 = 0x62, -- VK_NUMPAD2 Numeric keypad 2 key num_3 = 0x63, -- VK_NUMPAD3 Numeric keypad 3 key num_4 = 0x64, -- VK_NUMPAD4 Numeric keypad 4 key num_5 = 0x65, -- VK_NUMPAD5 Numeric keypad 5 key num_6 = 0x66, -- VK_NUMPAD6 Numeric keypad 6 key num_7 = 0x67, -- VK_NUMPAD7 Numeric keypad 7 key num_8 = 0x68, -- VK_NUMPAD8 Numeric keypad 8 key num_9 = 0x69, -- VK_NUMPAD9 Numeric keypad 9 key ["num_*"] = 0x6A, num_multiply = 0x6A, -- VK_MULTIPLY Multiply key ["num_+"] = 0x6B, num_plus = 0x6B, -- VK_ADD Add key --0x6C -- VK_SEPARATOR Separator key ["num_-"] = 0x6D, num_minus = 0x6D, -- VK_SUBTRACT Subtract key ["num_."] = 0x6E, num_del = 0x6E, -- VK_DECIMAL Decimal key ["num_/"] = 0x6F, num_devide = 0x6F, num_slash = 0x6F, -- VK_DIVIDE Divide key F1 = 0x70, -- VK_F1 F1 key F2 = 0x71, -- VK_F2 F2 key F3 = 0x72, -- VK_F3 F3 key F4 = 0x73, -- VK_F4 F4 key F5 = 0x74, -- VK_F5 F5 key F6 = 0x75, -- VK_F6 F6 key F7 = 0x76, -- VK_F7 F7 key F8 = 0x77, -- VK_F8 F8 key F9 = 0x78, -- VK_F9 F9 key F10 = 0x79, -- VK_F10 F10 key F11 = 0x7A, -- VK_F11 F11 key F12 = 0x7B, -- VK_F12 F12 key F13 = 0x7C, -- VK_F13 F13 key F14 = 0x7D, -- VK_F14 F14 key F15 = 0x7E, -- VK_F15 F15 key F16 = 0x7F, -- VK_F16 F16 key F17 = 0x80, -- VK_F17 F17 key F18 = 0x81, -- VK_F18 F18 key F19 = 0x82, -- VK_F19 F19 key F20 = 0x83, -- VK_F20 F20 key F21 = 0x84, -- VK_F21 F21 key F22 = 0x85, -- VK_F22 F22 key F23 = 0x86, -- VK_F23 F23 key F24 = 0x87, -- VK_F24 F24 key f1 = 0x70, -- VK_F1 F1 key f2 = 0x71, -- VK_F2 F2 key f3 = 0x72, -- VK_F3 F3 key f4 = 0x73, -- VK_F4 F4 key f5 = 0x74, -- VK_F5 F5 key f6 = 0x75, -- VK_F6 F6 key f7 = 0x76, -- VK_F7 F7 key f8 = 0x77, -- VK_F8 F8 key f9 = 0x78, -- VK_F9 F9 key f10 = 0x79, -- VK_F10 F10 key f11 = 0x7A, -- VK_F11 F11 key f12 = 0x7B, -- VK_F12 F12 key f13 = 0x7C, -- VK_F13 F13 key f14 = 0x7D, -- VK_F14 F14 key f15 = 0x7E, -- VK_F15 F15 key f16 = 0x7F, -- VK_F16 F16 key f17 = 0x80, -- VK_F17 F17 key f18 = 0x81, -- VK_F18 F18 key f19 = 0x82, -- VK_F19 F19 key f20 = 0x83, -- VK_F20 F20 key f21 = 0x84, -- VK_F21 F21 key f22 = 0x85, -- VK_F22 F22 key f23 = 0x86, -- VK_F23 F23 key f24 = 0x87, -- VK_F24 F24 key --0x88-8F -- Unassigned num_lock = 0x90, -- VK_NUMLOCK NUM LOCK key scroll_lock = 0x91, -- VK_SCROLL SCROLL LOCK key --0x92-96 -- OEM specific --0x97-9F -- Unassigned shift_left = 0xA0, -- VK_LSHIFT Left SHIFT key shift_right = 0xA1, -- VK_RSHIFT Right SHIFT key ctrl_left = 0xA2, -- VK_LCONTROL Left CONTROL key ctrl_right = 0xA3, -- VK_RCONTROL Right CONTROL key menu_left = 0xA4, -- VK_LMENU Left MENU key menu_right = 0xA5, -- VK_RMENU Right MENU key browser_back = 0xA6, -- VK_BROWSER_BACK Browser Back key browser_forward = 0xA7, -- VK_BROWSER_FORWARD Browser Forward key browser_refresh = 0xA8, -- VK_BROWSER_REFRESH Browser Refresh key browser_stop = 0xA9, -- VK_BROWSER_STOP Browser Stop key browser_search = 0xAA, -- VK_BROWSER_SEARCH Browser Search key browser_favorites = 0xAB, -- VK_BROWSER_FAVORITES Browser Favorites key browser_home = 0xAC, -- VK_BROWSER_HOME Browser Start and Home key mute = 0xAD, -- VK_VOLUME_MUTE Volume Mute key volume_down = 0xAE, -- VK_VOLUME_DOWN Volume Down key volume_up = 0xAF, -- VK_VOLUME_UP Volume Up key media_next = 0xB0, -- VK_MEDIA_NEXT_TRACK Next Track key media_prev = 0xB1, -- VK_MEDIA_PREV_TRACK Previous Track key media_stop = 0xB2, -- VK_MEDIA_STOP Stop Media key media_play = 0xB3, -- VK_MEDIA_PLAY_PAUSE Play/Pause Media key media_pasue = 0xB3, -- VK_MEDIA_PLAY_PAUSE Play/Pause Media key launch_mail = 0xB4, -- VK_LAUNCH_MAIL Start Mail key launch_media = 0xB5, -- VK_LAUNCH_MEDIA_SELECT Select Media key launch_app_1 = 0xB6, -- VK_LAUNCH_APP1 Start Application 1 key launch_app_2 = 0xB6, -- VK_LAUNCH_APP1 Start Application 2 key --0xB8-B9 -- Reserved [";"] = 0xBA, -- VK_OEM_1 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the ';:' key [":"] = 0xBA, -- VK_OEM_1 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the ';:' key ["+"] = 0xBB, -- VK_OEM_PLUS For any country/region, the '+' key [","] = 0xBC, -- VK_OEM_COMMA For any country/region, the ',' key ["-"] = 0xBD, -- VK_OEM_MINUS For any country/region, the '-' key ["."] = 0xBE, -- VK_OEM_PERIOD For any country/region, the '.' key ["/"] = 0xBF, -- VK_OEM_2 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '/?' key ["?"] = 0xBF, -- VK_OEM_2 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '/?' key ["`"] = 0xC0, -- VK_OEM_3 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '`~' key ["~"] = 0xC0, -- VK_OEM_3 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '`~' key --0xC1-D7 -- Reserved --0xD8-DA -- Unassigned ["["] = 0xDB, -- VK_OEM_4 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '[{' key ["{"] = 0xDB, -- VK_OEM_4 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '[{' key ["\\"] = 0xDC, -- VK_OEM_5 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '\|' key ["|"] = 0xDC, -- VK_OEM_5 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '\|' key ["]"] = 0xDD, -- VK_OEM_6 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the ']}' key ["}"] = 0xDD, -- VK_OEM_6 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the ']}' key ["'"] = 0xDE, -- VK_OEM_7 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the 'single-quote/double-quote' key ['"'] = 0xDE, -- VK_OEM_7 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the 'single-quote/double-quote' key --0xDF -- VK_OEM_8 Used for miscellaneous characters; it can vary by keyboard. --0xDF -- VK_OEM_8 Used for miscellaneous characters; it can vary by keyboard. --0xE0 -- Reserved --0xE1 -- OEM specific --0xE2 -- VK_OEM_102 Either the angle bracket key or the backslash key on the RT 102-key keyboard --0xE3-E4 -- OEM specific --0xE5 -- VK_PROCESSKEY IME PROCESS key --0xE6 -- OEM specific --0xE7 -- VK_PACKET Used to pass Unicode characters as if they were keystrokes. The VK_PACKET key is the low word of a 32-bit Virtual Key value used for non-keyboard input methods. For more information, see Remark in KEYBDINPUT, SendInput, WM_KEYDOWN, and WM_KEYUP --0xE8 -- Unassigned --0xE9-F5 -- OEM specific --0xF6 -- VK_ATTN Attn key --0xF7 -- VK_CRSEL CrSel key --0xF8 -- VK_EXSEL ExSel key --0xF9 -- VK_EREOF Erase EOF key play = 0xFA, -- VK_PLAY Play key zoom = 0xFB, -- VK_ZOOM Zoom key --0xFC -- VK_NONAME Reserved --0xFD -- VK_PA1 PA1 key --0xFE -- VK_OEM_CLEAR Clear key }
return key
очень близкий вариант. В нем не нужно прописывать ожидание отжатия. Оставлю тут. Код --lua local ffi = require("ffi") ffi.cdef[[short GetAsyncKeyState(int vKey); void Sleep(int ms); ]] local C = ffi.C
local GetAsyncKeyState = function(vKey) local state = C.GetAsyncKeyState(vKey) return bit.band(state, 0x8000) ~= 0, bit.band(state, 1) ~= 0 end
while true do if ({GetAsyncKeyState(112)})[2] then -- если нажата левая кнопка мыши log("Нажали") -- F1 не нажимаем - мы ее и так нажали. send("{F2}") send("{F3}") send("{F4}") send("{F5}") send("{F6}") send("{F7}") end C.Sleep(1) end Сообщение отредактировал DarkMaster - 26.8.2022, 9:34
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
Pinople |
27.8.2022, 18:00
|
Registred
Сообщений: 7
Регистрация: 1.2.2022 Группа: Пользователи Наличность: 0
Пользователь №: 20.183
Возраст: 30
|
Спасибо большое 1 и 3 вариант идеально подходит вот только когда я нажимаю F1 он его получается как бы пропускает жму еще раз F1 он срабатывает а так все четко работает (IMG:https://i.ibb.co/YbgFnTp/image.png) Сообщение отредактировал DarkMaster - 27.8.2022, 18:08
|
|
|
|
Pinople |
27.8.2022, 18:28
|
Registred
Сообщений: 7
Регистрация: 1.2.2022 Группа: Пользователи Наличность: 0
Пользователь №: 20.183
Возраст: 30
|
Цитата(DarkMaster @ 27.8.2022, 18:14) Код а вот так оно работает если не добавлять f1 видно на панели что все клавиши отработали как надо кроме f1 (IMG:https://i.ibb.co/HPxPnd2/image.png)
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|