Code archives/User Input/Keycode scanning...
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
| Some code for dealing with keycode scanning from ELAGUI... This should help with getting keyboard input from the user, it deals with second and third key functions, as well as key delay and next key delay... You can get the key id from the structure elaKeyCode\typeid and use this to incorporate delete/home/end/insert, etc.. | |||||
Graphics 640,480,16
SetBuffer BackBuffer()
;Include "ELAKeyCodeSource.bb" ; Dont forget to include :)
; ////- START INCLUDE -////
;------------------------------------
;
; Elaee Graphical User Interface KeyCode Module: Written By Robert Hutchinson 2000-2001.
; Copyright Robert Hutchinson 2000-2001.
;
; REQUIRES BLITZ BASIC VERSION 1.44 OR HIGHER!
; ELAGUI VERSION: 0.71
;
; Ah, full version due for release later!..
;
; +---------------------------------------------------------------------------------------------+
; ¦ SCANCODE CORE - Codes for keypresses. ¦
; +---------------------------------------------------------------------------------------------+
Const ELA_SCANCODE_TYPEID_ESCAPE = 1
Const ELA_SCANCODE_TYPEID_BACKSPACE = 2
Const ELA_SCANCODE_TYPEID_TAB = 3
Const ELA_SCANCODE_TYPEID_RETURN = 4
Const ELA_SCANCODE_TYPEID_LCTRL = 5
Const ELA_SCANCODE_TYPEID_RCTRL = 6
Const ELA_SCANCODE_TYPEID_LSHIFT = 7
Const ELA_SCANCODE_TYPEID_RSHIFT = 8
Const ELA_SCANCODE_TYPEID_LALT = 9
Const ELA_SCANCODE_TYPEID_LWINKEY = 10
Const ELA_SCANCODE_TYPEID_NUMLOCK = 11
Const ELA_SCANCODE_TYPEID_CAPSLOCK = 12
Const ELA_SCANCODE_TYPEID_SCROLLLOCK = 13
Const ELA_SCANCODE_TYPEID_LMENU = 15
Const ELA_SCANCODE_TYPEID_F1 = 16
Const ELA_SCANCODE_TYPEID_F2 = 17
Const ELA_SCANCODE_TYPEID_F3 = 18
Const ELA_SCANCODE_TYPEID_F4 = 19
Const ELA_SCANCODE_TYPEID_F5 = 20
Const ELA_SCANCODE_TYPEID_F6 = 21
Const ELA_SCANCODE_TYPEID_F7 = 22
Const ELA_SCANCODE_TYPEID_F8 = 23
Const ELA_SCANCODE_TYPEID_F9 = 24
Const ELA_SCANCODE_TYPEID_F10 = 25
Const ELA_SCANCODE_TYPEID_F11 = 26
Const ELA_SCANCODE_TYPEID_F12 = 27
Const ELA_SCANCODE_TYPEID_F13 = 28
Const ELA_SCANCODE_TYPEID_F14 = 29
Const ELA_SCANCODE_TYPEID_F15 = 30
Const ELA_SCANCODE_TYPEID_KANA = 40
Const ELA_SCANCODE_TYPEID_ABNT_C1 = 41
Const ELA_SCANCODE_TYPEID_CONVERT = 42
Const ELA_SCANCODE_TYPEID_NOCONVERT = 43
Const ELA_SCANCODE_TYPEID_YEN = 44
Const ELA_SCANCODE_TYPEID_ABNT_C2 = 45
Const ELA_SCANCODE_TYPEID_NUMPADEQUALS = 46
Const ELA_SCANCODE_TYPEID_PREVTRACK = 47
Const ELA_SCANCODE_TYPEID_AT = 48
Const ELA_SCANCODE_TYPEID_COLON = 49
Const ELA_SCANCODE_TYPEID_UNDERLINE = 50
Const ELA_SCANCODE_TYPEID_KANJI = 51
Const ELA_SCANCODE_TYPEID_STOP = 52
Const ELA_SCANCODE_TYPEID_AX = 53
Const ELA_SCANCODE_TYPEID_UNLABELED = 54
Const ELA_SCANCODE_TYPEID_NEXTTRACK = 55
Const ELA_SCANCODE_TYPEID_NUMPADENTER = 56
Const ELA_SCANCODE_TYPEID_MUTE = 58
Const ELA_SCANCODE_TYPEID_CALCULATOR = 59
Const ELA_SCANCODE_TYPEID_PLAYPAUSE = 60
Const ELA_SCANCODE_TYPEID_MEDIASTOP = 61
Const ELA_SCANCODE_TYPEID_VOLUMEDOWN = 62
Const ELA_SCANCODE_TYPEID_VOLUMEUP = 63
Const ELA_SCANCODE_TYPEID_WEBHOME = 64
Const ELA_SCANCODE_TYPEID_NUMPADCOMMA = 65
Const ELA_SCANCODE_TYPEID_DIVIDE = 66
Const ELA_SCANCODE_TYPEID_SYSRQ = 67
Const ELA_SCANCODE_TYPEID_RMENU = 68
Const ELA_SCANCODE_TYPEID_PAUSE = 69
Const ELA_SCANCODE_TYPEID_HOME = 70
Const ELA_SCANCODE_TYPEID_UP = 71
Const ELA_SCANCODE_TYPEID_PRIOR = 72
Const ELA_SCANCODE_TYPEID_LEFT = 73
Const ELA_SCANCODE_TYPEID_RIGHT = 74
Const ELA_SCANCODE_TYPEID_END = 75
Const ELA_SCANCODE_TYPEID_DOWN = 76
Const ELA_SCANCODE_TYPEID_NEXT = 77
Const ELA_SCANCODE_TYPEID_INSERT = 78
Const ELA_SCANCODE_TYPEID_DELETE = 79
Const ELA_SCANCODE_TYPEID_LWIN = 80
Const ELA_SCANCODE_TYPEID_RWIN = 81
Const ELA_SCANCODE_TYPEID_APPS = 82
Const ELA_SCANCODE_TYPEID_POWER = 83
Const ELA_SCANCODE_TYPEID_SLEEP = 84
Const ELA_SCANCODE_TYPEID_WAKE = 85
Const ELA_SCANCODE_TYPEID_WEBSEARCH = 86
Const ELA_SCANCODE_TYPEID_WEBFAVORITES = 87
Const ELA_SCANCODE_TYPEID_WEBREFRESH = 88
Const ELA_SCANCODE_TYPEID_WEBSTOP = 89
Const ELA_SCANCODE_TYPEID_WEBFORWARD = 90
Const ELA_SCANCODE_TYPEID_WEBBACK = 91
Const ELA_SCANCODE_TYPEID_MYCOMPUTER = 92
Const ELA_SCANCODE_TYPEID_MAIL = 93
Const ELA_SCANCODE_TYPEID_MEDIASELECT = 94
Const ELA_SCANCODE_TYPEID_NUMPAD7 = 95
Const ELA_SCANCODE_TYPEID_NUMPAD8 = 96
Const ELA_SCANCODE_TYPEID_NUMPAD9 = 97
Const ELA_SCANCODE_TYPEID_NUMPAD4 = 98
Const ELA_SCANCODE_TYPEID_NUMPAD5 = 99
Const ELA_SCANCODE_TYPEID_NUMPAD6 = 100
Const ELA_SCANCODE_TYPEID_NUMPAD1 = 101
Const ELA_SCANCODE_TYPEID_NUMPAD2 = 102
Const ELA_SCANCODE_TYPEID_NUMPAD3 = 103
Const ELA_SCANCODE_TYPEID_NUMPAD0 = 104
Const ELA_SCANCODE_TYPEID_OEM102 = 105
Type elaKeyCode
Field typeid ; This is the ID of this keycode, IDs are as above.
Field alpha$ ; This is the character string of the key.
Field ascii ; This is the ASCII representation of the key.
Field seckey.elaKeyCode ; This is the secondary key (upper level key).
Field terkey.elaKeyCode ; This is the tertiary key.
End Type
Function ELACreateKeyCode.elaKeyCode(typeid,alpha$,ascii,seckey.elaKeyCode,terkey.elaKeyCode)
tempKeyCode.elaKeyCode = New elaKeyCode
tempKeyCode\typeid = typeid
tempKeyCode\alpha$ = alpha$
tempKeyCode\ascii = ascii
tempKeyCode\seckey = seckey
tempKeyCode\terkey = terkey
Return tempKeyCode
End Function
Global keycodeDelay = 200
Global keycodeNextKeyDelay = 10
Global keycodeTiming = 0
Global keycodeTimingNext = 0
Dim keycodeBase.elaKeyCode(305)
Dim keycodeValid(255)
Global keycodeLastKeyDown = 0
Global keycodeLastKeyHit = 0
Global keycodeValidTo = 0
Global keycodeCapsLockOn = False
Function ELASetKeyDelay(millidelay)
keycodeDelay = millidelay
End Function
Function ELASetNextKeyDelay(millidelay)
keycodeNextKeyDelay = millidelay
End Function
Function ELASetSpacesPerTab(noofspaces)
keycodeBase(15)\alpha = String(" ",noofspaces)
End Function
Function ELACapsLockStatus(truefalse)
keycodeCapsLockOn = truefalse
End Function
Function ELALastKeyCodeDown.elaKeyCode()
Return keycodeBase(keycodeLastKeyDown)
End Function
Function ELALastScanCodeDown()
Return keycodeLastKeyDown
End Function
Function ELALastKeyCodeHit.elaKeyCode()
Return keycodeBase(keycodeLastKeyHit)
End Function
Function ELALastScanCodeHit()
Return keycodeLastKeyHit
End Function
keycodeBase(256) = ELACreateKeyCode(0,"!",Asc("!"),Null,Null)
keycodeBase(257) = ELACreateKeyCode(0,Chr(34),34 ,Null,Null) ; "
keycodeBase(258) = ELACreateKeyCode(0,"£",Asc("£"),Null,Null)
keycodeBase(259) = ELACreateKeyCode(0,"$",Asc("$"),Null,Null)
keycodeBase(260) = ELACreateKeyCode(0,"%",Asc("%"),Null,Null)
keycodeBase(261) = ELACreateKeyCode(0,"^",Asc("^"),Null,Null)
keycodeBase(262) = ELACreateKeyCode(0,"&",Asc("&"),Null,Null)
keycodeBase(263) = ELACreateKeyCode(0,"*",Asc("*"),Null,Null)
keycodeBase(264) = ELACreateKeyCode(0,"(",Asc("("),Null,Null)
keycodeBase(265) = ELACreateKeyCode(0,")",Asc(")"),Null,Null)
keycodeBase(266) = ELACreateKeyCode(0,"_",Asc("_"),Null,Null)
keycodeBase(267) = ELACreateKeyCode(0,"+",Asc("+"),Null,Null)
keycodeBase(268) = ELACreateKeyCode(0,"Q",Asc("Q"),Null,Null)
keycodeBase(269) = ELACreateKeyCode(0,"W",Asc("W"),Null,Null)
keycodeBase(270) = ELACreateKeyCode(0,"E",Asc("E"),Null,Null)
keycodeBase(271) = ELACreateKeyCode(0,"R",Asc("R"),Null,Null)
keycodeBase(272) = ELACreateKeyCode(0,"T",Asc("T"),Null,Null)
keycodeBase(273) = ELACreateKeyCode(0,"Y",Asc("Y"),Null,Null)
keycodeBase(274) = ELACreateKeyCode(0,"U",Asc("U"),Null,Null)
keycodeBase(275) = ELACreateKeyCode(0,"I",Asc("I"),Null,Null)
keycodeBase(276) = ELACreateKeyCode(0,"O",Asc("O"),Null,Null)
keycodeBase(277) = ELACreateKeyCode(0,"P",Asc("P"),Null,Null)
keycodeBase(278) = ELACreateKeyCode(0,"{",Asc("{"),Null,Null)
keycodeBase(279) = ELACreateKeyCode(0,"}",Asc("}"),Null,Null)
keycodeBase(280) = ELACreateKeyCode(0,"A",Asc("A"),Null,Null)
keycodeBase(281) = ELACreateKeyCode(0,"S",Asc("S"),Null,Null)
keycodeBase(282) = ELACreateKeyCode(0,"D",Asc("D"),Null,Null)
keycodeBase(283) = ELACreateKeyCode(0,"F",Asc("F"),Null,Null)
keycodeBase(284) = ELACreateKeyCode(0,"G",Asc("G"),Null,Null)
keycodeBase(285) = ELACreateKeyCode(0,"H",Asc("H"),Null,Null)
keycodeBase(286) = ELACreateKeyCode(0,"J",Asc("J"),Null,Null)
keycodeBase(287) = ELACreateKeyCode(0,"K",Asc("K"),Null,Null)
keycodeBase(288) = ELACreateKeyCode(0,"L",Asc("L"),Null,Null)
keycodeBase(289) = ELACreateKeyCode(0,":",Asc(":"),Null,Null)
keycodeBase(290) = ELACreateKeyCode(0,"@",Asc("@"),Null,Null)
keycodeBase(291) = ELACreateKeyCode(0,"~",Asc("~"),Null,Null)
keycodeBase(292) = ELACreateKeyCode(0,"|",Asc("|"),Null,Null)
keycodeBase(293) = ELACreateKeyCode(0,"Z",Asc("Z"),Null,Null)
keycodeBase(294) = ELACreateKeyCode(0,"X",Asc("X"),Null,Null)
keycodeBase(295) = ELACreateKeyCode(0,"C",Asc("C"),Null,Null)
keycodeBase(296) = ELACreateKeyCode(0,"V",Asc("V"),Null,Null)
keycodeBase(297) = ELACreateKeyCode(0,"B",Asc("B"),Null,Null)
keycodeBase(298) = ELACreateKeyCode(0,"N",Asc("N"),Null,Null)
keycodeBase(299) = ELACreateKeyCode(0,"M",Asc("M"),Null,Null)
keycodeBase(300) = ELACreateKeyCode(0,"<",Asc("<"),Null,Null)
keycodeBase(301) = ELACreateKeyCode(0,">",Asc(">"),Null,Null)
keycodeBase(302) = ELACreateKeyCode(0,"?",Asc("?"),Null,Null)
keycodeBase(303) = ELACreateKeyCode(0,"¬",Asc("¬"),Null,Null)
keycodeBase(1) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_ESCAPE,"",0,Null,Null)
keycodeBase(2) = ELACreateKeyCode(0,"1",Asc("1"),Null,keycodeBase(256))
keycodeBase(3) = ELACreateKeyCode(0,"2",Asc("2"),Null,keycodeBase(257))
keycodeBase(4) = ELACreateKeyCode(0,"3",Asc("3"),Null,keycodeBase(258))
keycodeBase(5) = ELACreateKeyCode(0,"4",Asc("4"),Null,keycodeBase(259))
keycodeBase(6) = ELACreateKeyCode(0,"5",Asc("5"),Null,keycodeBase(260))
keycodeBase(7) = ELACreateKeyCode(0,"6",Asc("6"),Null,keycodeBase(261))
keycodeBase(8) = ELACreateKeyCode(0,"7",Asc("7"),Null,keycodeBase(262))
keycodeBase(9) = ELACreateKeyCode(0,"8",Asc("8"),Null,keycodeBase(263))
keycodeBase(10) = ELACreateKeyCode(0,"9",Asc("9"),Null,keycodeBase(264))
keycodeBase(11) = ELACreateKeyCode(0,"0",Asc("0"),Null,keycodeBase(265))
keycodeBase(12) = ELACreateKeyCode(0,"-",Asc("-"),Null,keycodeBase(266))
keycodeBase(13) = ELACreateKeyCode(0,"=",Asc("="),Null,keycodeBase(267))
keycodeBase(14) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_BACKSPACE,"",0,Null,Null)
keycodeBase(15) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_TAB ," ",Asc(" "),Null,Null)
keycodeBase(16) = ELACreateKeyCode(0,"q",Asc("q"),keycodeBase(268),keycodeBase(268))
keycodeBase(17) = ELACreateKeyCode(0,"w",Asc("w"),keycodeBase(269),keycodeBase(269))
keycodeBase(18) = ELACreateKeyCode(0,"e",Asc("e"),keycodeBase(270),keycodeBase(270))
keycodeBase(19) = ELACreateKeyCode(0,"r",Asc("r"),keycodeBase(271),keycodeBase(271))
keycodeBase(20) = ELACreateKeyCode(0,"t",Asc("t"),keycodeBase(272),keycodeBase(272))
keycodeBase(21) = ELACreateKeyCode(0,"y",Asc("y"),keycodeBase(273),keycodeBase(273))
keycodeBase(22) = ELACreateKeyCode(0,"u",Asc("u"),keycodeBase(274),keycodeBase(274))
keycodeBase(23) = ELACreateKeyCode(0,"i",Asc("i"),keycodeBase(275),keycodeBase(275))
keycodeBase(24) = ELACreateKeyCode(0,"o",Asc("o"),keycodeBase(276),keycodeBase(276))
keycodeBase(25) = ELACreateKeyCode(0,"p",Asc("p"),keycodeBase(277),keycodeBase(277))
keycodeBase(26) = ELACreateKeyCode(0,"[",Asc("["),Null,keycodeBase(278))
keycodeBase(27) = ELACreateKeyCode(0,"]",Asc("]"),Null,keycodeBase(279))
keycodeBase(28) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_RETURN,"",0,Null,Null)
keycodeBase(29) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_LCTRL ,"",0,Null,Null)
keycodeBase(30) = ELACreateKeyCode(0,"a",Asc("a"),keycodeBase(280),keycodeBase(280))
keycodeBase(31) = ELACreateKeyCode(0,"s",Asc("s"),keycodeBase(281),keycodeBase(281))
keycodeBase(32) = ELACreateKeyCode(0,"d",Asc("d"),keycodeBase(282),keycodeBase(282))
keycodeBase(33) = ELACreateKeyCode(0,"f",Asc("f"),keycodeBase(283),keycodeBase(283))
keycodeBase(34) = ELACreateKeyCode(0,"g",Asc("g"),keycodeBase(284),keycodeBase(284))
keycodeBase(35) = ELACreateKeyCode(0,"h",Asc("h"),keycodeBase(285),keycodeBase(285))
keycodeBase(36) = ELACreateKeyCode(0,"j",Asc("j"),keycodeBase(286),keycodeBase(286))
keycodeBase(37) = ELACreateKeyCode(0,"k",Asc("k"),keycodeBase(287),keycodeBase(287))
keycodeBase(38) = ELACreateKeyCode(0,"l",Asc("l"),keycodeBase(288),keycodeBase(288))
keycodeBase(39) = ELACreateKeyCode(0,";",Asc(";"),Null,keycodeBase(289))
keycodeBase(40) = ELACreateKeyCode(0,"'",Asc("'"),Null,keycodeBase(290))
keycodeBase(41) = ELACreateKeyCode(0,"`",Asc("`"),Null,keycodeBase(303)) ; `
keycodeBase(42) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_LSHIFT,"",0,Null,Null)
keycodeBase(43) = ELACreateKeyCode(0,"#",Asc("#"),Null,keycodeBase(291))
keycodeBase(44) = ELACreateKeyCode(0,"z",Asc("z"),keycodeBase(293),keycodeBase(293))
keycodeBase(45) = ELACreateKeyCode(0,"x",Asc("x"),keycodeBase(294),keycodeBase(294))
keycodeBase(46) = ELACreateKeyCode(0,"c",Asc("c"),keycodeBase(295),keycodeBase(295))
keycodeBase(47) = ELACreateKeyCode(0,"v",Asc("v"),keycodeBase(296),keycodeBase(296))
keycodeBase(48) = ELACreateKeyCode(0,"b",Asc("b"),keycodeBase(297),keycodeBase(297))
keycodeBase(49) = ELACreateKeyCode(0,"n",Asc("n"),keycodeBase(298),keycodeBase(298))
keycodeBase(50) = ELACreateKeyCode(0,"m",Asc("m"),keycodeBase(299),keycodeBase(299))
keycodeBase(51) = ELACreateKeyCode(0,",",Asc(","),Null,keycodeBase(300))
keycodeBase(52) = ELACreateKeyCode(0,".",Asc("."),Null,keycodeBase(301))
keycodeBase(53) = ELACreateKeyCode(0,"/",Asc("/"),Null,keycodeBase(302))
keycodeBase(54) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_RSHIFT,"",0,Null,Null)
keycodeBase(55) = ELACreateKeyCode(0,"*",Asc("*"),Null,Null)
keycodeBase(56) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_LMENU,"",0,Null,Null)
keycodeBase(57) = ELACreateKeyCode(0," ",Asc(" "),Null,Null)
keycodeBase(58) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_CAPSLOCK,"" ,Asc("") ,Null,Null)
keycodeBase(59) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_F1 ,"F1",0,Null,Null)
keycodeBase(60) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_F2 ,"F2",0,Null,Null)
keycodeBase(61) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_F3 ,"F3",0,Null,Null)
keycodeBase(62) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_F4 ,"F4",0,Null,Null)
keycodeBase(63) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_F5 ,"F5",0,Null,Null)
keycodeBase(64) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_F6 ,"F6",0,Null,Null)
keycodeBase(65) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_F7 ,"F7",0,Null,Null)
keycodeBase(66) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_F8 ,"F8",0,Null,Null)
keycodeBase(67) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_F9 ,"F9",0,Null,Null)
keycodeBase(68) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_F10,"F10",0,Null,Null)
keycodeBase(69) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_NUMLOCK ,"",0,Null,Null)
keycodeBase(70) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_SCROLLLOCK,"",0,Null,Null)
keycodeBase(71) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_NUMPAD7 ,"7",Asc("7"),Null,Null)
keycodeBase(72) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_NUMPAD8 ,"8",Asc("8"),Null,Null)
keycodeBase(73) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_NUMPAD9 ,"9",Asc("9"),Null,Null)
keycodeBase(74) = ELACreateKeyCode(0,"-",Asc("-"),Null,Null)
keycodeBase(75) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_NUMPAD4 ,"4",Asc("4"),Null,Null)
keycodeBase(76) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_NUMPAD5 ,"5",Asc("5"),Null,Null)
keycodeBase(77) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_NUMPAD6 ,"6",Asc("6"),Null,Null)
keycodeBase(78) = ELACreateKeyCode(0,"+",Asc("+"),Null,Null)
keycodeBase(79) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_NUMPAD1 ,"1",Asc("1"),Null,Null)
keycodeBase(80) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_NUMPAD2 ,"2",Asc("2"),Null,Null)
keycodeBase(81) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_NUMPAD3 ,"3",Asc("3"),Null,Null)
keycodeBase(82) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_NUMPAD0 ,"0",Asc("0"),Null,Null)
keycodeBase(83) = ELACreateKeyCode(0,".",Asc("."),Null,Null)
keycodeBase(86) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_OEM102 ,"\",Asc("\"),Null,keycodeBase(292))
keycodeBase(87) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_F11,"F11",0,Null,Null)
keycodeBase(88) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_F12,"F12",0,Null,Null)
keycodeBase(100) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_F13,"F13",0,Null,Null)
keycodeBase(101) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_F14,"F14",0,Null,Null)
keycodeBase(102) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_F15,"F15",0,Null,Null)
keycodeBase(112) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_KANA ,"",0,Null,Null)
keycodeBase(115) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_ABNT_C1 ,"",0,Null,Null)
keycodeBase(121) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_CONVERT ,"",0,Null,Null)
keycodeBase(123) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_NOCONVERT ,"",0,Null,Null)
keycodeBase(125) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_YEN ,"",0,Null,Null)
keycodeBase(126) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_ABNT_C2 ,"",0,Null,Null)
keycodeBase(141) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_NUMPADEQUALS ,"=",Asc("="),Null,Null)
keycodeBase(144) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_PREVTRACK ,"",0,Null,Null)
keycodeBase(145) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_AT ,"",0,Null,Null)
keycodeBase(146) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_COLON ,":",Asc(":"),Null,Null)
keycodeBase(147) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_UNDERLINE ,"",0,Null,Null)
keycodeBase(148) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_KANJI ,"",0,Null,Null)
keycodeBase(149) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_STOP ,"",0,Null,Null)
keycodeBase(150) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_AX ,"",0,Null,Null)
keycodeBase(151) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_UNLABELED ,"",0,Null,Null)
keycodeBase(153) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_NEXTTRACK ,"",0,Null,Null)
keycodeBase(156) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_NUMPADENTER ,"",0,Null,Null)
keycodeBase(157) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_RCTRL ,"",0,Null,Null)
keycodeBase(160) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_MUTE ,"",0,Null,Null)
keycodeBase(161) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_CALCULATOR ,"",0,Null,Null)
keycodeBase(162) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_PLAYPAUSE ,"",0,Null,Null)
keycodeBase(164) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_MEDIASTOP ,"",0,Null,Null)
keycodeBase(174) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_VOLUMEDOWN ,"",0,Null,Null)
keycodeBase(176) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_VOLUMEUP ,"",0,Null,Null)
keycodeBase(178) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_WEBHOME ,"",0,Null,Null)
keycodeBase(179) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_NUMPADCOMMA ,",",Asc(","),Null,Null)
keycodeBase(181) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_DIVIDE ,"/",Asc("/"),Null,Null)
keycodeBase(183) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_SYSRQ ,"",0,Null,Null)
keycodeBase(184) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_RMENU ,"",0,Null,Null)
keycodeBase(197) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_PAUSE ,"",0,Null,Null)
keycodeBase(199) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_HOME ,"",0,Null,Null)
keycodeBase(200) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_UP ,"",0,Null,Null)
keycodeBase(201) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_PRIOR ,"",0,Null,Null)
keycodeBase(203) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_LEFT ,"",0,Null,Null)
keycodeBase(205) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_RIGHT ,"",0,Null,Null)
keycodeBase(207) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_END ,"",0,Null,Null)
keycodeBase(208) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_DOWN ,"",0,Null,Null)
keycodeBase(209) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_NEXT ,"",0,Null,Null)
keycodeBase(210) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_INSERT ,"",0,Null,Null)
keycodeBase(211) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_DELETE ,"",0,Null,Null)
keycodeBase(219) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_LWIN ,"",0,Null,Null)
keycodeBase(220) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_RWIN ,"",0,Null,Null)
keycodeBase(221) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_APPS ,"",0,Null,Null)
keycodeBase(222) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_POWER ,"",0,Null,Null)
keycodeBase(223) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_SLEEP ,"",0,Null,Null)
keycodeBase(227) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_WAKE ,"",0,Null,Null)
keycodeBase(229) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_WEBSEARCH ,"",0,Null,Null)
keycodeBase(230) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_WEBFAVORITES ,"",0,Null,Null)
keycodeBase(231) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_WEBREFRESH ,"",0,Null,Null)
keycodeBase(232) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_WEBSTOP ,"",0,Null,Null)
keycodeBase(233) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_WEBFORWARD ,"",0,Null,Null)
keycodeBase(234) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_WEBBACK ,"",0,Null,Null)
keycodeBase(235) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_MYCOMPUTER ,"",0,Null,Null)
keycodeBase(236) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_MAIL ,"",0,Null,Null)
keycodeBase(237) = ELACreateKeyCode(ELA_SCANCODE_TYPEID_MEDIASELECT ,"",0,Null,Null)
; Yes, there IS a reason for this LUT within a LUT! :) 6 milliseconds is the reason! :)
; A small optimisation I know, but an optimisation non the less!
Restore keycodesUseTheseKeyCodes
Read keyScan
While keyScan <> 0
keycodeValidTo = keycodeValidTo + 1
keycodeValid(keycodeValidTo) = keyScan
Read keyScan
Wend
Function ELAScanCode.elaKeyCode()
If KeyHit(58) Then keycodeCapsLockOn = 1 - keycodeCapsLockOn
For keycodeScannedCode = 1 To keycodeValidTo
keyScanTF = KeyDown(keycodeValid(keycodeScannedCode))
If keyScanTF
tempScanCode = keycodeValid(keycodeScannedCode)
If keycodeLastKeyDown <> tempScanCode
keycodeTiming = 0
EndIf
keycodeLastKeyDown = tempScanCode
If keycodeTiming = 0
keycodeTiming = MilliSecs()
keycodeLastKeyHit = tempScanCode
Return ELAKeyCodeReturnKey(tempScanCode)
Else
If MilliSecs() - keycodeTiming > keycodeDelay
If keycodeTimingNext = 0
keycodeTimingNext = MilliSecs()
keycodeLastKeyHit = 0
Return Null
Else
If MilliSecs() - keycodeTimingNext > keycodeNextKeyDelay
keycodeTimingNext = 0
keycodeLastKeyHit = tempScanCode
Return ELAKeyCodeReturnKey(tempScanCode)
Else
keycodeLastKeyHit = 0
Return Null
EndIf
EndIf
Else
Return Null
EndIf
EndIf
EndIf
Next
keycodeTimingNext = 0
keycodeLastKeyDown = 0
keycodeTiming = 0
Return Null
End Function
Function ELAKeyCodeReturnKey.elaKeyCode(scancodeid)
tempShiftDown = KeyDown(42) Or KeyDown(54)
If tempShiftDown <> 0
If keycodeBase(scancodeid)\terkey <> Null
; If keycodeBase(scancodeid)\ascii <> 0
Return keycodeBase(scancodeid)\terkey
; EndIf
Else
; If keycodeBase(scancodeid)\ascii <> 0
Return keycodeBase(scancodeid)
; EndIf
EndIf
Else
If keycodeCapsLockOn <> 0
If keycodeBase(scancodeid)\seckey <> Null
; If keycodeBase(scancodeid)\ascii <> 0
Return keycodeBase(scancodeid)\seckey
; EndIf
Else
; If keycodeBase(scancodeid)\ascii <> 0
Return keycodeBase(scancodeid)
; EndIf
EndIf
Else
; If keycodeBase(scancodeid)\ascii <> 0
Return keycodeBase(scancodeid)
; EndIf
EndIf
EndIf
Return Null
End Function
.keycodesUseTheseKeyCodes:
Data 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30
Data 31,32,33,34,35,36,37,38,39,40,41,43,44,45,46,47,48,49,50,51,52,53,55,56,57,59,60
Data 61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,86,87,88,100
Data 101,102,112,115,121,123,125,126,141,144,145,146,147,148,149,150,151,153,156,157,160
Data 161,162,164,174,176,178,179,181,183,184,197,199,200,201,203,205,207,208,209,210,211
Data 219,220,221,222,223,227,229,230,231,232,233,234,235,236,237,0 ; null terminated
;-------------------------------------------
;////- END INCLUDE -////
; Example:
printtext$ = ""
ELASetKeyDelay(500) ; Delay between next key return in millisecs.
ELASetNextKeyDelay(20) ; Delay between next key return when holding the key, in millisecs.
Repeat
Cls
tempkeycode.elaKeyCode = ELAScanCode()
If tempkeycode <> Null
printtext$ = printtext$ + tempkeycode\alpha
If StringWidth(printtext$)>GraphicsWidth()
printtext$ = ""
EndIf
EndIf
Text 0,0,"Type something...."
Text 0,15,printtext$
Flip
Until KeyDown(1)
End
|
Comments
None.
Code Archives Forum