So I got it working with admin permissions no need to do anything in Accessibility.
I didnt try to modify anything in the plist or anything so maybe it is possible to get it to run as user? 
Here is my slightly modified version.. 
Code: Select all
EnableExplicit
#KeyDownMask      = 1 << 10
#KeyUpMask        = 1 << 11
#FlagsChangedMask = 1 << 12
;#kCGSessionEventTap = 0
#kCGHeadInsertEventTap = 0
#kCGKeyboardEventKeycode = 9
ImportC ""
  CGEventTapCreate(tap, place, options, eventsOfInterest.q, callback, refcon)
  CGEventGetFlags.q(event)
  CGEventGetIntegerValueField.q(event, field)
  CGEventKeyboardGetUnicodeString(event, maxStringLength, *actualStringLength, *unicodeString)
EndImport
Define eventTap
Define eventMask
Procedure.s convertKeyCode(keyCode)
  Select keyCode
    Case 0:   pReturn$ = "a"
    Case 1:   pReturn$ = "s"
    Case 2:   pReturn$ = "d"
    Case 3:   pReturn$ = "f"
    Case 4:   pReturn$ = "h"
    Case 5:   pReturn$ = "g"
    Case 6:   pReturn$ = "z"
    Case 7:   pReturn$ = "x"
    Case 8:   pReturn$ = "c"
    Case 9:   pReturn$ = "v"
    Case 11:  pReturn$ = "b"
    Case 12:  pReturn$ = "q"
    Case 13:  pReturn$ = "w"
    Case 14:  pReturn$ = "e"
    Case 15:  pReturn$ = "r"
    Case 16:  pReturn$ = "y"
    Case 17:  pReturn$ = "t"
    Case 18:  pReturn$ = "1"
    Case 19:  pReturn$ = "2"
    Case 20:  pReturn$ = "3"
    Case 21:  pReturn$ = "4"
    Case 22:  pReturn$ = "6"
    Case 23:  pReturn$ = "5"
    Case 24:  pReturn$ = "="
    Case 25:  pReturn$ = "9"
    Case 26:  pReturn$ = "7"
    Case 27:  pReturn$ = "-"
    Case 28:  pReturn$ = "8"
    Case 29:  pReturn$ = "0"
    Case 30:  pReturn$ = "]"
    Case 31:  pReturn$ = "o"
    Case 32:  pReturn$ = "u"
    Case 33:  pReturn$ = "["
    Case 34:  pReturn$ = "i"
    Case 35:  pReturn$ = "p"
    Case 37:  pReturn$ = "l"
    Case 38:  pReturn$ = "j"
    Case 39:  pReturn$ = "'"
    Case 40:  pReturn$ = "k"
    Case 41:  pReturn$ = ";"
    Case 42:  pReturn$ = "\\"
    Case 43:  pReturn$ = ","
    Case 44:  pReturn$ = "/"
    Case 45:  pReturn$ = "n"
    Case 46:  pReturn$ = "m"
    Case 47:  pReturn$ = "."
    Case 50:  pReturn$ = "`"
    Case 65:  pReturn$ = "[decimal]"
    Case 67:  pReturn$ = "[asterisk]"
    Case 69:  pReturn$ = "[plus]"
    Case 71:  pReturn$ = "[clear]"
    Case 75:  pReturn$ = "[divide]"
    Case 76:  pReturn$ = "[enter]"
    Case 78:  pReturn$ = "[hyphen]"
    Case 81:  pReturn$ = "[equals]"
    Case 82:  pReturn$ = "0"
    Case 83:  pReturn$ = "1"
    Case 84:  pReturn$ = "2"
    Case 85:  pReturn$ = "3"
    Case 86:  pReturn$ = "4"
    Case 87:  pReturn$ = "5"
    Case 88:  pReturn$ = "6"
    Case 89:  pReturn$ = "7"
    Case 91:  pReturn$ = "8"
    Case 92:  pReturn$ = "9"
    Case 36:  pReturn$ = "[return]"
    Case 48:  pReturn$ = "[tab]"
    Case 49:  pReturn$ = " "
    Case 51:  pReturn$ = "[del]"
    Case 53:  pReturn$ = "[esc]"
    Case 54:  pReturn$ = "[right-cmd]"
    Case 55:  pReturn$ = "[left-cmd]"
    Case 56:  pReturn$ = "[left-shift]"
    Case 57:  pReturn$ = "[caps]"
    Case 58:  pReturn$ = "[left-option]"
    Case 59:  pReturn$ = "[left-ctrl]"
    Case 60:  pReturn$ = "[right-shift]"
    Case 61:  pReturn$ = "[right-option]"
    Case 62:  pReturn$ = "[right-ctrl]"
    Case 63:  pReturn$ = "[fn]"
    Case 64:  pReturn$ = "[f17]"
    Case 72:  pReturn$ = "[volup]"
    Case 73:  pReturn$ = "[voldown]"
    Case 74:  pReturn$ = "[mute]"
    Case 79:  pReturn$ = "[f18]"
    Case 80:  pReturn$ = "[f19]"
    Case 90:  pReturn$ = "[f20]"
    Case 96:  pReturn$ = "[f5]"
    Case 97:  pReturn$ = "[f6]"
    Case 98:  pReturn$ = "[f7]"
    Case 99:  pReturn$ = "[f3]"
    Case 100: pReturn$ = "[f8]"
    Case 101: pReturn$ = "[f9]"
    Case 103: pReturn$ = "[f11]"
    Case 105: pReturn$ = "[f13]"
    Case 106: pReturn$ = "[f16]"
    Case 107: pReturn$ = "[f14]"
    Case 109: pReturn$ = "[f10]"
    Case 111: pReturn$ = "[f12]"
    Case 113: pReturn$ = "[f15]"
    Case 114: pReturn$ = "[help]"
    Case 115: pReturn$ = "[home]"
    Case 116: pReturn$ = "[pgup]"
    Case 117: pReturn$ = "[fwddel]"
    Case 118: pReturn$ = "[f4]"
    Case 119: pReturn$ = "[end]"
    Case 120: pReturn$ = "[f2]"
    Case 121: pReturn$ = "[pgdown]"
    Case 122: pReturn$ = "[f1]"
    Case 123: pReturn$ = "[left]"
    Case 124: pReturn$ = "[right]"
    Case 125: pReturn$ = "[down]"
    Case 126: pReturn$ = "[up]"
    Default
      pReturn$ = "unknown"
  EndSelect
  ProcedureReturn pReturn$
EndProcedure
ProcedureC eventTapFunction(proxy, type, event, refcon)
  Protected keyCode = CGEventGetIntegerValueField(event, #kCGKeyboardEventKeycode)
  Protected keyFlags = CGEventGetFlags(event) >> 16 & 255
  Protected unicodeBuffer.q, bufferLen.i = 4
  CGEventKeyboardGetUnicodeString(event, bufferLen, @bufferLen, @unicodeBuffer)
  Protected text.s = PeekS(@unicodeBuffer, bufferLen, #PB_Unicode)
  
  SetGadgetText(0, "keyCode : " + Str(keyCode) + #LF$ + "keyFlags : " + RSet(Bin(keyFlags), 8, "0") + #LF$ + "string : " + text)
EndProcedure
If OpenWindow(0, 0, 0, 220, 90, "keyCode tap", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  StickyWindow(0, 1)
  StringGadget(0, 10, 10, 200, 70, "")
  
  eventMask = #KeyDownMask | #FlagsChangedMask
  eventTap = CGEventTapCreate(#kCGSessionEventTap, #kCGHeadInsertEventTap, 0, eventMask, @eventTapFunction(), #Null)
  
  If eventTap
    CocoaMessage(0, CocoaMessage(0, 0, "NSRunLoop currentRunLoop"), "addPort:", eventTap, "forMode:$", @"kCFRunLoopDefaultMode")
  EndIf
  
  Repeat : Delay(10): Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
working admin on OSX v10.13.6
 
			
			
									
									WARNING: I dont know what I am doing! I just put stuff here and there and sometimes like magic it works. So please improve on my code and post your changes so I can learn more. TIA