Advertisement
bystander36

TypeString (German)

Dec 21st, 2017
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.20 KB | None | 0 0
  1. -- Thanks to Nightmare85 for getting the German version working.
  2.  
  3. function OnEvent(event, arg, family)
  4.  
  5.     if event == "MOUSE_BUTTON_PRESSED" and arg == 4 then
  6.         TypeString('^1aTöܲäß´°!"§$%&/()=?`5²\n{[]}\\<>@,;.:-_µ°°#+*|~+END')
  7.     end
  8.    
  9.     if event == "G_PRESSED" and arg == 4 then
  10.         TypeString('^1aTöܲäß´°!"§$%&/()=?`5²\n{[]}\\<>@,;.:-_µ°°#+*|~+END')
  11.     end
  12.    
  13. end
  14.  
  15. function TypeString(str, hold, delay)
  16.     local h = hold or 1
  17.     local d = delay or 10
  18.     local i, n = 1, # str
  19.  
  20.     local function TypeKey(k, h, d)
  21.         if _KEYBOARD[k].modifier then
  22.             PressKey( _KEYBOARD[k].modifier )
  23.             if d > 0 then Sleep(d) end
  24.             PressKey( _KEYBOARD[k].key )
  25.             if h > 0 then Sleep(h) end
  26.             ReleaseKey( _KEYBOARD[k].key )
  27.             if d > 0 then Sleep(d) end
  28.             ReleaseKey( _KEYBOARD[k].modifier )
  29.         else
  30.             PressKey( _KEYBOARD[k].key )
  31.             if h > 0 then Sleep(h) end
  32.             ReleaseKey( _KEYBOARD[k].key )
  33.         end
  34.     end
  35.  
  36.     while i <= n do
  37.         if i > 1 and d > 0 then
  38.             Sleep(d)
  39.         end
  40.         TypeKey( string.sub(str,i,i), h, d )
  41.         i = i + 1
  42.     end
  43.  
  44. end
  45.  
  46. --German keyboard layout
  47. _KEYBOARD =
  48. {
  49.     --Special commands: 2 keys
  50.     ["\n"] = { key = "enter" },
  51.     ["\r"] = { key = "enter" },
  52.     ["\t"] = { key = "tab" },
  53.  
  54.     --Special characters: 7 keys
  55.     [","] = { key = "comma" },
  56.     ["."] = { key = "period" },
  57.     ["+"] = { key = "rbracket" },
  58.     ["-"] = { key = "slash" },
  59.     [" "] = { key = "spacebar" },
  60.     ["<"] = { key = "non_us_slash" },
  61.     ["#"] = { key = "backslash" },
  62.  
  63.     --Special characters with Shift: 6 keys
  64.     ["*"] = { key = "rbracket", modifier = "lshift" },
  65.     [";"] = { key = "comma", modifier = "lshift" },
  66.     [":"] = { key = "period", modifier = "lshift" },
  67.     ["_"] = { key = "slash", modifier = "lshift" },
  68.     ["'"] = { key = 0x2b, modifier = "lshift" },
  69.     [">"] = { key = "non_us_slash", modifier = "lshift" },
  70.  
  71.     --Special characters with Ctrl+Shift: 2 keys
  72.     ["|"] = { key = "non_us_slash", modifier = "ralt" },
  73.     ["~"] = { key = "rbracket", modifier = "ralt" },
  74.  
  75.     --Numerals: 13 keys
  76.     ["^"] = { key = "tilde" },
  77.     ["1"] = { key = "1" },
  78.     ["2"] = { key = "2" },
  79.     ["3"] = { key = "3" },
  80.     ["4"] = { key = "4" },
  81.     ["5"] = { key = "5" },
  82.     ["6"] = { key = "6" },
  83.     ["7"] = { key = "7" },
  84.     ["8"] = { key = "8" },
  85.     ["9"] = { key = "9" },
  86.     ["0"] = { key = "0" },
  87.     ["ß"] = { key = "minus" },
  88.     ["´"] = { key = "equal" },
  89.  
  90.     --Numerals with Shift: 13 keys
  91.     ["°"] = { key = "tilde", modifier = "lshift" },
  92.     ["!"] = { key = "1", modifier = "lshift" },
  93.     ['"'] = { key = "2", modifier = "lshift" },
  94.     ["§"] = { key = "3", modifier = "lshift" },
  95.     ["$"] = { key = "4", modifier = "lshift" },
  96.     ["%"] = { key = "5", modifier = "lshift" },
  97.     ["&"] = { key = "6", modifier = "lshift" },
  98.     ["/"] = { key = "7", modifier = "lshift" },
  99.     ["("] = { key = "8", modifier = "lshift" },
  100.     [")"] = { key = "9", modifier = "lshift" },
  101.     ["="] = { key = "0", modifier = "lshift" },
  102.     ["?"] = { key = "minus", modifier = "lshift" },
  103.     ["`"] = { key = "equal", modifier = "lshift" },
  104.  
  105.     --Numerals with Ctrl+Shift:  7 keys
  106.     ["²"] = { key = "2", modifier = "ralt" },
  107.     ["³"] = { key = "3", modifier = "ralt" },
  108.     ["{"] = { key = "7", modifier = "ralt" },
  109.     ["["] = { key = "8", modifier = "ralt" },
  110.     ["]"] = { key = "9", modifier = "ralt" },
  111.     ["}"] = { key = "0", modifier = "ralt" },
  112.     ["\\"] = { key = "minus", modifier = "ralt" },
  113.  
  114.     --Letters: 29 keys
  115.     ["a"] = { key = "a" },
  116.     ["b"] = { key = "b" },
  117.     ["c"] = { key = "c" },
  118.     ["d"] = { key = "d" },
  119.     ["e"] = { key = "e" },
  120.     ["f"] = { key = "f" },
  121.     ["g"] = { key = "g" },
  122.     ["h"] = { key = "h" },
  123.     ["i"] = { key = "i" },
  124.     ["j"] = { key = "j" },
  125.     ["k"] = { key = "k" },
  126.     ["l"] = { key = "l" },
  127.     ["m"] = { key = "m" },
  128.     ["n"] = { key = "n" },
  129.     ["o"] = { key = "o" },
  130.     ["p"] = { key = "p" },
  131.     ["q"] = { key = "q" },
  132.     ["r"] = { key = "r" },
  133.     ["s"] = { key = "s" },
  134.     ["t"] = { key = "t" },
  135.     ["u"] = { key = "u" },
  136.     ["v"] = { key = "v" },
  137.     ["w"] = { key = "w" },
  138.     ["x"] = { key = "x" },
  139.     ["y"] = { key = "y" },
  140.     ["z"] = { key = "z" },
  141.     ["ä"] = { key = "quote" },
  142.     ["ö"] = { key = "semicolon" },
  143.     ["ü"] = { key = "lbracket" },
  144.  
  145.     -- Letters with Shift: 29 keys
  146.     ["A"] = { key = "a", modifier = "lshift" },
  147.     ["B"] = { key = "b", modifier = "lshift" },
  148.     ["C"] = { key = "c", modifier = "lshift" },
  149.     ["D"] = { key = "d", modifier = "lshift" },
  150.     ["E"] = { key = "e", modifier = "lshift" },
  151.     ["F"] = { key = "f", modifier = "lshift" },
  152.     ["G"] = { key = "g", modifier = "lshift" },
  153.     ["H"] = { key = "h", modifier = "lshift" },
  154.     ["I"] = { key = "i", modifier = "lshift" },
  155.     ["J"] = { key = "j", modifier = "lshift" },
  156.     ["K"] = { key = "k", modifier = "lshift" },
  157.     ["L"] = { key = "l", modifier = "lshift" },
  158.     ["M"] = { key = "m", modifier = "lshift" },
  159.     ["N"] = { key = "n", modifier = "lshift" },
  160.     ["O"] = { key = "o", modifier = "lshift" },
  161.     ["P"] = { key = "p", modifier = "lshift" },
  162.     ["Q"] = { key = "q", modifier = "lshift" },
  163.     ["R"] = { key = "r", modifier = "lshift" },
  164.     ["S"] = { key = "s", modifier = "lshift" },
  165.     ["T"] = { key = "t", modifier = "lshift" },
  166.     ["U"] = { key = "u", modifier = "lshift" },
  167.     ["V"] = { key = "v", modifier = "lshift" },
  168.     ["W"] = { key = "w", modifier = "lshift" },
  169.     ["X"] = { key = "x", modifier = "lshift" },
  170.     ["Y"] = { key = "y", modifier = "lshift" },
  171.     ["Z"] = { key = "z", modifier = "lshift" },
  172.     ["Ä"] = { key = "quote", modifier = "lshift" },
  173.     ["Ö"] = { key = "semicolon", modifier = "lshift" },
  174.     ["Ü"] = { key = "lbracket", modifier = "lshift" },
  175.  
  176.     -- Letters with Ctrl+Shift: 3 keys
  177.     ["@"] = { key = "q", modifier = "ralt" },
  178.     ["µ"] = { key = "m", modifier = "ralt" },
  179.     --["€"] = { key = "e", modifier = "ralt" },
  180.     --activate this line only when needed, otherwise the ["?"] might not work
  181. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement