Добавлен ofeerist,
опубликован
Алгоритмы, Наработки и Способности
Способ реализации:
vJass
Тип:
Наработка
KeyCode
- Упрощает работу с отловом клавиш.
- Пригодиться, если все время лень заходить сюда.
- Из очень полезного есть два массива, один со всеми клавишами, другой с названиями.
- С помощью этих двух массивов можно очень легко сделать сменяемые хоткеи на фреймы, например.
- Только ради этого и сделана эта наработка...
Код
- Упрощает работу с отловом клавиш.
- Пригодиться, если все время лень заходить сюда.
- Из очень полезного есть два массива, один со всеми клавишами, другой с названиями.
- С помощью этих двух массивов можно очень легко сделать сменяемые хоткеи на фреймы, например.
- Только ради этого и сделана эта наработка...
Код
KeyMain
library KeyLibrary
struct KeyCode
// Mouse
static integer LMB = 0x01
static integer RMB = 0x02
static integer MMB = 0x04
static integer X1MB = 0x05
static integer X2MB = 0x06
// Keyboard misc
static integer Backspace = 0x08
static integer Clear = 0x0C // (?)
static integer Enter = 0x0D
static integer Shift = 0x10
static integer CTRL = 0x11
static integer ALT = 0x12
static integer Pause = 0x13
static integer CapsLock = 0x14
static integer Esc = 0x1B
static integer Space = 0x20
static integer PageUp = 0x21
static integer PageDown = 0x22
static integer End = 0x23
static integer Home = 0x24
static integer LeftArrow = 0x25
static integer UpArrow = 0x26
static integer RightArrow = 0x27
static integer DownArrow = 0x28
static integer Select = 0x29
static integer Print = 0x2A
static integer Execute = 0x2B
static integer PrintScreen = 0x2C
static integer Insert = 0x2D
static integer Delete = 0x2E
static integer Help = 0x2F
static integer LeftWin = 0x5B
static integer RightWin = 0x5C
static integer App = 0x5D
static integer SleepKey = 0x5F
static integer ScrollLock = 0x91
static integer LeftShift = 0xA0
static integer RightShift = 0xA1
static integer LeftCTRL = 0xA2
static integer RightCTRL = 0xA3
static integer LeftMenu = 0xA4
static integer RightMenu = 0xA5
// Numbers
static integer Key0 = 0x30
static integer Key1 = 0x31
static integer Key2 = 0x32
static integer Key3 = 0x33
static integer Key4 = 0x34
static integer Key5 = 0x35
static integer Key6 = 0x36
static integer Key7 = 0x37
static integer Key8 = 0x38
static integer Key9 = 0x39
// Letters
static integer A = 0x41
static integer B = 0x42
static integer C = 0x43
static integer D = 0x44
static integer E = 0x45
static integer F = 0x46
static integer G = 0x47
static integer H = 0x48
static integer I = 0x49
static integer J = 0x4A
static integer K = 0x4B
static integer L = 0x4C
static integer M = 0x4D
static integer N = 0x4E
static integer O = 0x4F
static integer P = 0x50
static integer Q = 0x51
static integer R = 0x52
static integer S = 0x53
static integer T = 0x54
static integer U = 0x55
static integer V = 0x56
static integer W = 0x57
static integer X = 0x58
static integer Y = 0x59
static integer Z = 0x5A
// Numpad
static integer Num0 = 0x60
static integer Num1 = 0x61
static integer Num2 = 0x62
static integer Num3 = 0x63
static integer Num4 = 0x64
static integer Num5 = 0x65
static integer Num6 = 0x66
static integer Num7 = 0x67
static integer Num8 = 0x68
static integer Num9 = 0x69
static integer Multiply = 0x6A
static integer Add = 0x6B
static integer Separator = 0x6C
static integer Subtract = 0x6D
static integer Decimal = 0x6E
static integer Divide = 0x6F
static integer NumLock = 0x90
// FKeys
static integer F1 = 0x70
static integer F2 = 0x71
static integer F3 = 0x72
static integer F4 = 0x73
static integer F5 = 0x74
static integer F6 = 0x75
static integer F7 = 0x76
static integer F8 = 0x77
static integer F9 = 0x78
static integer F10 = 0x79
static integer F11 = 0x7A
static integer F12 = 0x7B
static integer F13 = 0x7C
static integer F14 = 0x7D
static integer F15 = 0x7E
static integer F16 = 0x7F
static integer F17 = 0x80
static integer F18 = 0x81
static integer F19 = 0x82
static integer F20 = 0x83
static integer F21 = 0x84
static integer F22 = 0x85
static integer F23 = 0x86
static integer F24 = 0x87
// IME
static integer IMEKana = 0x15 // Hanguel, Hangul
static integer IMEOn = 0x16
static integer IMEJunja = 0x17
static integer IMEFinal = 0x18
static integer IMEHanja = 0x19 // Kanji
static integer IMEOff = 0x1A
static integer IMEConvert = 0x1C
static integer IMENonConvert = 0x1D
static integer IMEAccept = 0x1E
static integer IMEModeChange = 0x1F
// Browser
static integer BrowserBack = 0xA6
static integer BrowserForward = 0xA7
static integer BrowserRefresh = 0xA8
static integer BrowserStop = 0xA9
static integer BrowserSearch = 0xAA
static integer BrowserFavorites = 0xAB
static integer BrowserHome = 0xAC // Browser Start and Home key
// Keyboard Advance
static integer VolumeMute = 0xAD
static integer VolumeDown = 0xAE
static integer VolumeUp = 0xAF
static integer NextTrack = 0xB0
static integer PrevTrack = 0xB1
static integer StopMedia = 0xB2
static integer PlayPauseMedia = 0xB3
static integer StartMail = 0xB4
static integer SelectMedia = 0xB5
static integer StartApplication1 = 0xB6
static integer StartApplication2 = 0xB7
endstruct
globals
integer array Buttons[146]
string array ButtonsNames[146]
endglobals
function KeyLibInit takes nothing returns nothing
set Buttons[0] = KeyCode.LMB
set Buttons[1] = KeyCode.RMB
set Buttons[2] = KeyCode.MMB
set Buttons[3] = KeyCode.X1MB
set Buttons[4] = KeyCode.X2MB
set Buttons[5] = KeyCode.Backspace
set Buttons[6] = KeyCode.Clear
set Buttons[7] = KeyCode.Enter
set Buttons[8] = KeyCode.Shift
set Buttons[9] = KeyCode.CTRL
set Buttons[10] = KeyCode.ALT
set Buttons[11] = KeyCode.Pause
set Buttons[12] = KeyCode.CapsLock
set Buttons[13] = KeyCode.Esc
set Buttons[14] = KeyCode.Space
set Buttons[15] = KeyCode.PageUp
set Buttons[16] = KeyCode.PageDown
set Buttons[17] = KeyCode.End
set Buttons[18] = KeyCode.Home
set Buttons[19] = KeyCode.LeftArrow
set Buttons[20] = KeyCode.UpArrow
set Buttons[21] = KeyCode.RightArrow
set Buttons[22] = KeyCode.DownArrow
set Buttons[23] = KeyCode.Select
set Buttons[24] = KeyCode.Print
set Buttons[25] = KeyCode.Execute
set Buttons[26] = KeyCode.PrintScreen
set Buttons[27] = KeyCode.Insert
set Buttons[28] = KeyCode.Delete
set Buttons[29] = KeyCode.Help
set Buttons[30] = KeyCode.LeftWin
set Buttons[31] = KeyCode.RightWin
set Buttons[32] = KeyCode.App
set Buttons[33] = KeyCode.SleepKey
set Buttons[34] = KeyCode.ScrollLock
set Buttons[35] = KeyCode.LeftShift
set Buttons[36] = KeyCode.RightShift
set Buttons[37] = KeyCode.LeftCTRL
set Buttons[38] = KeyCode.RightCTRL
set Buttons[39] = KeyCode.LeftMenu
set Buttons[40] = KeyCode.RightMenu
set Buttons[41] = KeyCode.Key0
set Buttons[42] = KeyCode.Key1
set Buttons[43] = KeyCode.Key2
set Buttons[44] = KeyCode.Key3
set Buttons[45] = KeyCode.Key4
set Buttons[46] = KeyCode.Key5
set Buttons[47] = KeyCode.Key6
set Buttons[48] = KeyCode.Key7
set Buttons[49] = KeyCode.Key8
set Buttons[50] = KeyCode.Key9
set Buttons[51] = KeyCode.A
set Buttons[52] = KeyCode.B
set Buttons[53] = KeyCode.C
set Buttons[54] = KeyCode.D
set Buttons[55] = KeyCode.E
set Buttons[56] = KeyCode.F
set Buttons[57] = KeyCode.G
set Buttons[58] = KeyCode.H
set Buttons[59] = KeyCode.I
set Buttons[60] = KeyCode.J
set Buttons[61] = KeyCode.K
set Buttons[62] = KeyCode.L
set Buttons[63] = KeyCode.M
set Buttons[64] = KeyCode.N
set Buttons[65] = KeyCode.O
set Buttons[66] = KeyCode.P
set Buttons[67] = KeyCode.Q
set Buttons[68] = KeyCode.R
set Buttons[69] = KeyCode.S
set Buttons[70] = KeyCode.T
set Buttons[71] = KeyCode.U
set Buttons[72] = KeyCode.V
set Buttons[73] = KeyCode.W
set Buttons[74] = KeyCode.X
set Buttons[75] = KeyCode.Y
set Buttons[76] = KeyCode.Z
set Buttons[77] = KeyCode.Num0
set Buttons[78] = KeyCode.Num1
set Buttons[79] = KeyCode.Num2
set Buttons[80] = KeyCode.Num3
set Buttons[81] = KeyCode.Num4
set Buttons[82] = KeyCode.Num5
set Buttons[83] = KeyCode.Num6
set Buttons[84] = KeyCode.Num7
set Buttons[85] = KeyCode.Num8
set Buttons[86] = KeyCode.Num9
set Buttons[87] = KeyCode.Multiply
set Buttons[88] = KeyCode.Add
set Buttons[89] = KeyCode.Separator
set Buttons[90] = KeyCode.Subtract
set Buttons[91] = KeyCode.Decimal
set Buttons[92] = KeyCode.Divide
set Buttons[93] = KeyCode.NumLock
set Buttons[94] = KeyCode.F1
set Buttons[95] = KeyCode.F2
set Buttons[96] = KeyCode.F3
set Buttons[97] = KeyCode.F4
set Buttons[98] = KeyCode.F5
set Buttons[99] = KeyCode.F6
set Buttons[100] = KeyCode.F7
set Buttons[101] = KeyCode.F8
set Buttons[102] = KeyCode.F9
set Buttons[103] = KeyCode.F10
set Buttons[104] = KeyCode.F11
set Buttons[105] = KeyCode.F12
set Buttons[106] = KeyCode.F13
set Buttons[107] = KeyCode.F14
set Buttons[108] = KeyCode.F15
set Buttons[109] = KeyCode.F16
set Buttons[110] = KeyCode.F17
set Buttons[111] = KeyCode.F18
set Buttons[112] = KeyCode.F19
set Buttons[113] = KeyCode.F20
set Buttons[114] = KeyCode.F21
set Buttons[115] = KeyCode.F22
set Buttons[116] = KeyCode.F23
set Buttons[117] = KeyCode.F24
set Buttons[118] = KeyCode.IMEKana
set Buttons[119] = KeyCode.IMEOn
set Buttons[120] = KeyCode.IMEJunja
set Buttons[121] = KeyCode.IMEFinal
set Buttons[122] = KeyCode.IMEHanja
set Buttons[123] = KeyCode.IMEOff
set Buttons[124] = KeyCode.IMEConvert
set Buttons[125] = KeyCode.IMENonConvert
set Buttons[126] = KeyCode.IMEAccept
set Buttons[127] = KeyCode.IMEModeChange
set Buttons[128] = KeyCode.BrowserBack
set Buttons[129] = KeyCode.BrowserForward
set Buttons[130] = KeyCode.BrowserRefresh
set Buttons[131] = KeyCode.BrowserStop
set Buttons[132] = KeyCode.BrowserSearch
set Buttons[133] = KeyCode.BrowserFavorites
set Buttons[134] = KeyCode.BrowserHome
set Buttons[135] = KeyCode.VolumeMute
set Buttons[136] = KeyCode.VolumeDown
set Buttons[137] = KeyCode.VolumeUp
set Buttons[138] = KeyCode.NextTrack
set Buttons[139] = KeyCode.PrevTrack
set Buttons[140] = KeyCode.StopMedia
set Buttons[141] = KeyCode.PlayPauseMedia
set Buttons[142] = KeyCode.StartMail
set Buttons[143] = KeyCode.SelectMedia
set Buttons[144] = KeyCode.StartApplication1
set Buttons[145] = KeyCode.StartApplication2
set ButtonsNames[0] = "LMB"
set ButtonsNames[1] = "RMB"
set ButtonsNames[2] = "MMB"
set ButtonsNames[3] = "X1MB"
set ButtonsNames[4] = "X2MB"
set ButtonsNames[5] = "Backspace"
set ButtonsNames[6] = "Clear"
set ButtonsNames[7] = "Enter"
set ButtonsNames[8] = "Shift"
set ButtonsNames[9] = "CTRL"
set ButtonsNames[10] = "ALT"
set ButtonsNames[11] = "Pause"
set ButtonsNames[12] = "CapsLock"
set ButtonsNames[13] = "Esc"
set ButtonsNames[14] = "Space"
set ButtonsNames[15] = "PageUp"
set ButtonsNames[16] = "PageDown"
set ButtonsNames[17] = "End"
set ButtonsNames[18] = "Home"
set ButtonsNames[19] = "LeftArrow"
set ButtonsNames[20] = "UpArrow"
set ButtonsNames[21] = "RightArrow"
set ButtonsNames[22] = "DownArrow"
set ButtonsNames[23] = "Select"
set ButtonsNames[24] = "Print"
set ButtonsNames[25] = "Execute"
set ButtonsNames[26] = "PrintScreen"
set ButtonsNames[27] = "Insert"
set ButtonsNames[28] = "Delete"
set ButtonsNames[29] = "Help"
set ButtonsNames[30] = "LeftWin"
set ButtonsNames[31] = "RightWin"
set ButtonsNames[32] = "App"
set ButtonsNames[33] = "SleepKey"
set ButtonsNames[34] = "ScrollLock"
set ButtonsNames[35] = "LeftShift"
set ButtonsNames[36] = "RightShift"
set ButtonsNames[37] = "LeftCTRL"
set ButtonsNames[38] = "RightCTRL"
set ButtonsNames[39] = "LeftMenu"
set ButtonsNames[40] = "RightMenu"
set ButtonsNames[41] = "Key0"
set ButtonsNames[42] = "Key1"
set ButtonsNames[43] = "Key2"
set ButtonsNames[44] = "Key3"
set ButtonsNames[45] = "Key4"
set ButtonsNames[46] = "Key5"
set ButtonsNames[47] = "Key6"
set ButtonsNames[48] = "Key7"
set ButtonsNames[49] = "Key8"
set ButtonsNames[50] = "Key9"
set ButtonsNames[51] = "A"
set ButtonsNames[52] = "B"
set ButtonsNames[53] = "C"
set ButtonsNames[54] = "D"
set ButtonsNames[55] = "E"
set ButtonsNames[56] = "F"
set ButtonsNames[57] = "G"
set ButtonsNames[58] = "H"
set ButtonsNames[59] = "I"
set ButtonsNames[60] = "J"
set ButtonsNames[61] = "K"
set ButtonsNames[62] = "L"
set ButtonsNames[63] = "M"
set ButtonsNames[64] = "N"
set ButtonsNames[65] = "O"
set ButtonsNames[66] = "P"
set ButtonsNames[67] = "Q"
set ButtonsNames[68] = "R"
set ButtonsNames[69] = "S"
set ButtonsNames[70] = "T"
set ButtonsNames[71] = "U"
set ButtonsNames[72] = "V"
set ButtonsNames[73] = "W"
set ButtonsNames[74] = "X"
set ButtonsNames[75] = "Y"
set ButtonsNames[76] = "Z"
set ButtonsNames[77] = "Num0"
set ButtonsNames[78] = "Num1"
set ButtonsNames[79] = "Num2"
set ButtonsNames[80] = "Num3"
set ButtonsNames[81] = "Num4"
set ButtonsNames[82] = "Num5"
set ButtonsNames[83] = "Num6"
set ButtonsNames[84] = "Num7"
set ButtonsNames[85] = "Num8"
set ButtonsNames[86] = "Num9"
set ButtonsNames[87] = "*"
set ButtonsNames[88] = "+"
set ButtonsNames[89] = "\\"
set ButtonsNames[90] = "-"
set ButtonsNames[91] = "."
set ButtonsNames[92] = "/"
set ButtonsNames[93] = "NumLock"
set ButtonsNames[94] = "F1"
set ButtonsNames[95] = "F2"
set ButtonsNames[96] = "F3"
set ButtonsNames[97] = "F4"
set ButtonsNames[98] = "F5"
set ButtonsNames[99] = "F6"
set ButtonsNames[100] = "F7"
set ButtonsNames[101] = "F8"
set ButtonsNames[102] = "F9"
set ButtonsNames[103] = "F10"
set ButtonsNames[104] = "F11"
set ButtonsNames[105] = "F12"
set ButtonsNames[106] = "F13"
set ButtonsNames[107] = "F14"
set ButtonsNames[108] = "F15"
set ButtonsNames[109] = "F16"
set ButtonsNames[110] = "F17"
set ButtonsNames[111] = "F18"
set ButtonsNames[112] = "F19"
set ButtonsNames[113] = "F20"
set ButtonsNames[114] = "F21"
set ButtonsNames[115] = "F22"
set ButtonsNames[116] = "F23"
set ButtonsNames[117] = "F24"
set ButtonsNames[118] = "IMEKana"
set ButtonsNames[119] = "IMEOn"
set ButtonsNames[120] = "IMEJunja"
set ButtonsNames[121] = "IMEFinal"
set ButtonsNames[122] = "IMEHanja"
set ButtonsNames[123] = "IMEOff"
set ButtonsNames[124] = "IMEConvert"
set ButtonsNames[125] = "IMENonConvert"
set ButtonsNames[126] = "IMEAccept"
set ButtonsNames[127] = "IMEModeChange"
set ButtonsNames[128] = "BrowserBack"
set ButtonsNames[129] = "BrowserForward"
set ButtonsNames[130] = "BrowserRefresh"
set ButtonsNames[131] = "BrowserStop"
set ButtonsNames[132] = "BrowserSearch"
set ButtonsNames[133] = "BrowserFavorites"
set ButtonsNames[134] = "BrowserHome"
set ButtonsNames[135] = "VolumeMute"
set ButtonsNames[136] = "VolumeDown"
set ButtonsNames[137] = "VolumeUp"
set ButtonsNames[138] = "NextTrack"
set ButtonsNames[139] = "PrevTrack"
set ButtonsNames[140] = "StopMedia"
set ButtonsNames[141] = "PlayPauseMedia"
set ButtonsNames[142] = "StartMail"
set ButtonsNames[143] = "SelectMedia"
set ButtonsNames[144] = "StartApplication1"
set ButtonsNames[145] = "StartApplication2"
endfunction
function ButtonToName takes integer but returns string
local integer i = 0
loop
exitwhen i == 146
if Buttons[i] == but then
return ButtonsNames[i]
endif
set i = i + 1
endloop
return ""
endfunction
//===========================================================================
function InitTrig_KeyMain takes nothing returns nothing
set gg_trg_KeyMain = CreateTrigger( )
call KeyLibInit()
endfunction
endlibrary
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Делается ещё один массив, уже булевых, ну и в ините заполняется false.
И дальше какая нибудь функция с периодическим срабатыванием проверяет циклом все кнопки.
IsKeyPressed(Buttons[i])
Если тру, то и переменная из массива тру, фолс > фолс.
Отредактирован Jack-of-shadow