micmonay/keybd_event

Search for key by string?

Opened this issue · 2 comments

Im looking for a way to find the key int value by its name, because the SetKeys function requires ints. I know I can do keybd_events.VK_SP1 but what if i want to get the key based on a string variable? (keyName := "VK_SP1")

var keyboardEvents = map[string]int{
	"VK_SP1":                 keybd_event.VK_SP1,
	"VK_SP2":                 keybd_event.VK_SP2,
	"VK_SP3":                 keybd_event.VK_SP3,
	"VK_SP4":                 keybd_event.VK_SP4,
	"VK_SP5":                 keybd_event.VK_SP5,
	"VK_SP6":                 keybd_event.VK_SP6,
	"VK_SP7":                 keybd_event.VK_SP7,
	"VK_SP8":                 keybd_event.VK_SP8,
	"VK_SP9":                 keybd_event.VK_SP9,
	"VK_SP10":                keybd_event.VK_SP10,
	"VK_SP11":                keybd_event.VK_SP11,
	"VK_SP12":                keybd_event.VK_SP12,
	"VK_ESC":                 keybd_event.VK_ESC,
	"VK_1":                   keybd_event.VK_1,
	"VK_2":                   keybd_event.VK_2,
	"VK_3":                   keybd_event.VK_3,
	"VK_4":                   keybd_event.VK_4,
	"VK_5":                   keybd_event.VK_5,
	"VK_6":                   keybd_event.VK_6,
	"VK_7":                   keybd_event.VK_7,
	"VK_8":                   keybd_event.VK_8,
	"VK_9":                   keybd_event.VK_9,
	"VK_0":                   keybd_event.VK_0,
	"VK_Q":                   keybd_event.VK_Q,
	"VK_W":                   keybd_event.VK_W,
	"VK_E":                   keybd_event.VK_E,
	"VK_R":                   keybd_event.VK_R,
	"VK_T":                   keybd_event.VK_T,
	"VK_Y":                   keybd_event.VK_Y,
	"VK_U":                   keybd_event.VK_U,
	"VK_I":                   keybd_event.VK_I,
	"VK_O":                   keybd_event.VK_O,
	"VK_P":                   keybd_event.VK_P,
	"VK_A":                   keybd_event.VK_A,
	"VK_S":                   keybd_event.VK_S,
	"VK_D":                   keybd_event.VK_D,
	"VK_F":                   keybd_event.VK_F,
	"VK_G":                   keybd_event.VK_G,
	"VK_H":                   keybd_event.VK_H,
	"VK_J":                   keybd_event.VK_J,
	"VK_K":                   keybd_event.VK_K,
	"VK_L":                   keybd_event.VK_L,
	"VK_Z":                   keybd_event.VK_Z,
	"VK_X":                   keybd_event.VK_X,
	"VK_C":                   keybd_event.VK_C,
	"VK_V":                   keybd_event.VK_V,
	"VK_B":                   keybd_event.VK_B,
	"VK_N":                   keybd_event.VK_N,
	"VK_M":                   keybd_event.VK_M,
	"VK_F1":                  keybd_event.VK_F1,
	"VK_F2":                  keybd_event.VK_F2,
	"VK_F3":                  keybd_event.VK_F3,
	"VK_F4":                  keybd_event.VK_F4,
	"VK_F5":                  keybd_event.VK_F5,
	"VK_F6":                  keybd_event.VK_F6,
	"VK_F7":                  keybd_event.VK_F7,
	"VK_F8":                  keybd_event.VK_F8,
	"VK_F9":                  keybd_event.VK_F9,
	"VK_F10":                 keybd_event.VK_F10,
	"VK_F11":                 keybd_event.VK_F11,
	"VK_F12":                 keybd_event.VK_F12,
	"VK_F13":                 keybd_event.VK_F13,
	"VK_F14":                 keybd_event.VK_F14,
	"VK_F15":                 keybd_event.VK_F15,
	"VK_F16":                 keybd_event.VK_F16,
	"VK_F17":                 keybd_event.VK_F17,
	"VK_F18":                 keybd_event.VK_F18,
	"VK_F19":                 keybd_event.VK_F19,
	"VK_F20":                 keybd_event.VK_F20,
	"VK_F21":                 keybd_event.VK_F21,
	"VK_F22":                 keybd_event.VK_F22,
	"VK_F23":                 keybd_event.VK_F23,
	"VK_F24":                 keybd_event.VK_F24,
	"VK_NUMLOCK":             keybd_event.VK_NUMLOCK,
	"VK_SCROLLLOCK":          keybd_event.VK_SCROLLLOCK,
	"VK_RESERVED":            keybd_event.VK_RESERVED,
	"VK_MINUS":               keybd_event.VK_MINUS,
	"VK_EQUAL":               keybd_event.VK_EQUAL,
	"VK_BACKSPACE":           keybd_event.VK_BACKSPACE,
	"VK_TAB":                 keybd_event.VK_TAB,
	"VK_LEFTBRACE":           keybd_event.VK_LEFTBRACE,
	"VK_RIGHTBRACE":          keybd_event.VK_RIGHTBRACE,
	"VK_ENTER":               keybd_event.VK_ENTER,
	"VK_SEMICOLON":           keybd_event.VK_SEMICOLON,
	"VK_APOSTROPHE":          keybd_event.VK_APOSTROPHE,
	"VK_GRAVE":               keybd_event.VK_GRAVE,
	"VK_BACKSLASH":           keybd_event.VK_BACKSLASH,
	"VK_COMMA":               keybd_event.VK_COMMA,
	"VK_DOT":                 keybd_event.VK_DOT,
	"VK_SLASH":               keybd_event.VK_SLASH,
	"VK_KPASTERISK":          keybd_event.VK_KPASTERISK,
	"VK_SPACE":               keybd_event.VK_SPACE,
	"VK_CAPSLOCK":            keybd_event.VK_CAPSLOCK,
	"VK_KP0":                 keybd_event.VK_KP0,
	"VK_KP1":                 keybd_event.VK_KP1,
	"VK_KP2":                 keybd_event.VK_KP2,
	"VK_KP3":                 keybd_event.VK_KP3,
	"VK_KP4":                 keybd_event.VK_KP4,
	"VK_KP5":                 keybd_event.VK_KP5,
	"VK_KP6":                 keybd_event.VK_KP6,
	"VK_KP7":                 keybd_event.VK_KP7,
	"VK_KP8":                 keybd_event.VK_KP8,
	"VK_KP9":                 keybd_event.VK_KP9,
	"VK_KPMINUS":             keybd_event.VK_KPMINUS,
	"VK_KPPLUS":              keybd_event.VK_KPPLUS,
	"VK_KPDOT":               keybd_event.VK_KPDOT,
	"VK_LBUTTON":             keybd_event.VK_LBUTTON,
	"VK_RBUTTON":             keybd_event.VK_RBUTTON,
	"VK_CANCEL":              keybd_event.VK_CANCEL,
	"VK_MBUTTON":             keybd_event.VK_MBUTTON,
	"VK_XBUTTON1":            keybd_event.VK_XBUTTON1,
	"VK_XBUTTON2":            keybd_event.VK_XBUTTON2,
	"VK_BACK":                keybd_event.VK_BACK,
	"VK_CLEAR":               keybd_event.VK_CLEAR,
	"VK_PAUSE":               keybd_event.VK_PAUSE,
	"VK_CAPITAL":             keybd_event.VK_CAPITAL,
	"VK_KANA":                keybd_event.VK_KANA,
	"VK_HANGUEL":             keybd_event.VK_HANGUEL,
	"VK_HANGUL":              keybd_event.VK_HANGUL,
	"VK_JUNJA":               keybd_event.VK_JUNJA,
	"VK_FINAL":               keybd_event.VK_FINAL,
	"VK_HANJA":               keybd_event.VK_HANJA,
	"VK_KANJI":               keybd_event.VK_KANJI,
	"VK_CONVERT":             keybd_event.VK_CONVERT,
	"VK_NONCONVERT":          keybd_event.VK_NONCONVERT,
	"VK_ACCEPT":              keybd_event.VK_ACCEPT,
	"VK_MODECHANGE":          keybd_event.VK_MODECHANGE,
	"VK_PAGEUP":              keybd_event.VK_PAGEUP,
	"VK_PAGEDOWN":            keybd_event.VK_PAGEDOWN,
	"VK_END":                 keybd_event.VK_END,
	"VK_HOME":                keybd_event.VK_HOME,
	"VK_LEFT":                keybd_event.VK_LEFT,
	"VK_UP":                  keybd_event.VK_UP,
	"VK_RIGHT":               keybd_event.VK_RIGHT,
	"VK_DOWN":                keybd_event.VK_DOWN,
	"VK_SELECT":              keybd_event.VK_SELECT,
	"VK_PRINT":               keybd_event.VK_PRINT,
	"VK_EXECUTE":             keybd_event.VK_EXECUTE,
	"VK_SNAPSHOT":            keybd_event.VK_SNAPSHOT,
	"VK_INSERT":              keybd_event.VK_INSERT,
	"VK_DELETE":              keybd_event.VK_DELETE,
	"VK_HELP":                keybd_event.VK_HELP,
	"VK_SCROLL":              keybd_event.VK_SCROLL,
	"VK_LMENU":               keybd_event.VK_LMENU,
	"VK_RMENU":               keybd_event.VK_RMENU,
	"VK_BROWSER_BACK":        keybd_event.VK_BROWSER_BACK,
	"VK_BROWSER_FORWARD":     keybd_event.VK_BROWSER_FORWARD,
	"VK_BROWSER_REFRESH":     keybd_event.VK_BROWSER_REFRESH,
	"VK_BROWSER_STOP":        keybd_event.VK_BROWSER_STOP,
	"VK_BROWSER_SEARCH":      keybd_event.VK_BROWSER_SEARCH,
	"VK_BROWSER_FAVORITES":   keybd_event.VK_BROWSER_FAVORITES,
	"VK_BROWSER_HOME":        keybd_event.VK_BROWSER_HOME,
	"VK_VOLUME_MUTE":         keybd_event.VK_VOLUME_MUTE,
	"VK_VOLUME_DOWN":         keybd_event.VK_VOLUME_DOWN,
	"VK_VOLUME_UP":           keybd_event.VK_VOLUME_UP,
	"VK_MEDIA_NEXT_TRACK":    keybd_event.VK_MEDIA_NEXT_TRACK,
	"VK_MEDIA_PREV_TRACK":    keybd_event.VK_MEDIA_PREV_TRACK,
	"VK_MEDIA_STOP":          keybd_event.VK_MEDIA_STOP,
	"VK_MEDIA_PLAY_PAUSE":    keybd_event.VK_MEDIA_PLAY_PAUSE,
	"VK_LAUNCH_MAIL":         keybd_event.VK_LAUNCH_MAIL,
	"VK_LAUNCH_MEDIA_SELECT": keybd_event.VK_LAUNCH_MEDIA_SELECT,
	"VK_LAUNCH_APP1":         keybd_event.VK_LAUNCH_APP1,
	"VK_LAUNCH_APP2":         keybd_event.VK_LAUNCH_APP2,
	"VK_OEM_1":               keybd_event.VK_OEM_1,
	"VK_OEM_PLUS":            keybd_event.VK_OEM_PLUS,
	"VK_OEM_COMMA":           keybd_event.VK_OEM_COMMA,
	"VK_OEM_MINUS":           keybd_event.VK_OEM_MINUS,
	"VK_OEM_PERIOD":          keybd_event.VK_OEM_PERIOD,
	"VK_OEM_2":               keybd_event.VK_OEM_2,
	"VK_OEM_3":               keybd_event.VK_OEM_3,
	"VK_OEM_4":               keybd_event.VK_OEM_4,
	"VK_OEM_5":               keybd_event.VK_OEM_5,
	"VK_OEM_6":               keybd_event.VK_OEM_6,
	"VK_OEM_7":               keybd_event.VK_OEM_7,
	"VK_OEM_8":               keybd_event.VK_OEM_8,
	"VK_OEM_102":             keybd_event.VK_OEM_102,
	"VK_PROCESSKEY":          keybd_event.VK_PROCESSKEY,
	"VK_PACKET":              keybd_event.VK_PACKET,
	"VK_ATTN":                keybd_event.VK_ATTN,
	"VK_CRSEL":               keybd_event.VK_CRSEL,
	"VK_EXSEL":               keybd_event.VK_EXSEL,
	"VK_EREOF":               keybd_event.VK_EREOF,
	"VK_PLAY":                keybd_event.VK_PLAY,
	"VK_ZOOM":                keybd_event.VK_ZOOM,
	"VK_NONAME":              keybd_event.VK_NONAME,
	"VK_PA1":                 keybd_event.VK_PA1,
	"VK_OEM_CLEAR":           keybd_event.VK_OEM_CLEAR,
}

I have achieved this feature, currently only supports English, you can refer to https://github.com/GuoFlight/gkeybd. Good luck.