Difference between revisions of "Getkey"

From OpenEUO
Jump to: navigation, search
m
m
Line 1: Line 1:
 
  local bpressed = getkey(str)
 
  local bpressed = getkey(str)
Returns a boolean based upon whether a key or key combination as specified by the string str is depressed or not.  The key-specifier string str can contain A-Z, 0-9, F1-F12 and ESC, BACK, TAB, ENTER, CAPS, SPACE, PGDN, PGUP, END, HOME, LEFT, RIGHT, UP, DOWN, INS, DEL, NUM, SCROLL, CTRL, ALT, or SHIFT.
+
Returns a boolean based upon whether a key or key combination as specified by the string str is depressed or not.  The key-specifier string str can contain A-Z, 0-9, F1-F12 and ESC, BACK, TAB, ENTER, CAPS, SPACE, PGDN, PGUP, END, HOME, LEFT, RIGHT, UP, DOWN, INS, DEL, NUM, CTRL, ALT, or SHIFT. Due to differences in operating system versions, keyboard drivers, and language settings, some keys may not be detectable on all systems or may be misidentified. Current list of known problem keys: PRNSCR, PAUSE, SCROLL.  The following script can be used to test functionality on individual systems.
 
+
Warning: since getkey is based on [http://msdn.microsoft.com/en-us/library/ms646293%28VS.85%29.aspx GetAsyncKeyState], this function will register a currently depressed key regardless of what application is in the foreground.
+
  
 
   local keys = {'ESC', 'BACK', 'TAB', 'ENTER', 'CAPS', 'SPACE', 'PGDN', 'PGUP', 'END', 'HOME',
 
   local keys = {'ESC', 'BACK', 'TAB', 'ENTER', 'CAPS', 'SPACE', 'PGDN', 'PGUP', 'END', 'HOME',
     'LEFT', 'RIGHT', 'UP', 'DOWN', 'INS', 'DEL', 'NUM', 'SCROLL', 'CTRL', 'ALT', 'SHIFT'}
+
     'LEFT', 'RIGHT', 'UP', 'DOWN', 'INS', 'DEL', 'NUM', 'SCROLL', 'PAUSE', 'PRNSCR', 'CTRL', 'ALT', 'SHIFT'}
 
   for i = 1,12,1 do
 
   for i = 1,12,1 do
 
     table.insert(keys,'F'..tostring(i))
 
     table.insert(keys,'F'..tostring(i))
Line 14: Line 12:
 
     end
 
     end
 
   end
 
   end
 +
 +
Warning: this function will register a currently depressed key regardless of what application is in the foreground.
 +
 +
[http://msdn.microsoft.com/en-us/library/ms646293%28VS.85%29.aspx GetAsyncKeyState]
  
 
[[Getmouse]]
 
[[Getmouse]]

Revision as of 11:16, 16 July 2012

local bpressed = getkey(str)

Returns a boolean based upon whether a key or key combination as specified by the string str is depressed or not. The key-specifier string str can contain A-Z, 0-9, F1-F12 and ESC, BACK, TAB, ENTER, CAPS, SPACE, PGDN, PGUP, END, HOME, LEFT, RIGHT, UP, DOWN, INS, DEL, NUM, CTRL, ALT, or SHIFT. Due to differences in operating system versions, keyboard drivers, and language settings, some keys may not be detectable on all systems or may be misidentified. Current list of known problem keys: PRNSCR, PAUSE, SCROLL. The following script can be used to test functionality on individual systems.

 local keys = {'ESC', 'BACK', 'TAB', 'ENTER', 'CAPS', 'SPACE', 'PGDN', 'PGUP', 'END', 'HOME',
   'LEFT', 'RIGHT', 'UP', 'DOWN', 'INS', 'DEL', 'NUM', 'SCROLL', 'PAUSE', 'PRNSCR', 'CTRL', 'ALT', 'SHIFT'}
 for i = 1,12,1 do
   table.insert(keys,'F'..tostring(i))
 end
 while true do
   for i = 1,#keys,1 do
     if getkey(keys[i]) then print(keys[i]) wait(10) end
   end
 end

Warning: this function will register a currently depressed key regardless of what application is in the foreground.

GetAsyncKeyState

Getmouse