Глобальный ввод с клавиатуры Go

Предоставляет ли Go возможность прослушивать глобальный ввод с клавиатуры? По сути, как кейлоггер (однако это не моя цель), где он захватывает ввод, если фокус находится вне его собственного контекста.

В идеале это была бы кроссплатформенность, но если бы не Windows, тоже работала бы.

Моя конечная цель - это кроссплатформенный инструмент, не требующий среды выполнения, который позволяет регистрировать глобальные сочетания клавиш для вызовов javascript в приложении (в основном для управления Google Music). Для этого нужно подключить расширение Chrome к соединению socket.io в приложении Golang, а затем приложение будет передавать команды расширению.


person bclymer    schedule 14.04.2014    source источник


Ответы (1)


Захват ввода с клавиатуры вне контекста приложения зависит от платформы. Go специально не имеет привязок к этим API.

В Mac OS X есть API-интерфейс Objective-C под названием event удары. В Windows есть функция C ++ RegisterHotKey, хотя Я менее знаком с API Windows.

Могут существовать наборы инструментов / фреймворки, позволяющие делать эту кроссплатформенную работу, но в настоящее время их нет в Go. Если вы найдете что-то в C, вы можете подключить его к Go с помощью cgo.

Возможно, вы слишком усложняете ситуацию? здесь есть страница, на которой описывается добавление сочетаний клавиш для расширения Chrome.

person Luke    schedule 06.05.2014
comment
Читайте в разделе Scope. Вместо этого команды могут иметь глобальную область видимости, начиная с версии 35. Похоже, что она изменилась за последний месяц. Большое спасибо за ссылку! - person bclymer; 07.05.2014