Мне нужен метод клавиатуры для открытия экранной клавиатуры Mac. Я мог бы быть командой Терминала. Строка будет введена в USB-порт пользователя Mac нашим устройством; "Вуаля, ОСК!"
2 ответа
2
По крайней мере, в 10.7 и позже вы можете просто открыть приложение KeyboardViewer:
open -a KeyboardViewer
У него есть несколько недостатков:
- Если вы закроете окно клавиатуры, например, нажав кнопку закрытия, процесс KeyboardViewer останется запущенным и продолжит использовать что-то вроде 0-10% CPU.
- Если после этого вы снова откроете KeyboardViewer, он не откроет окно клавиатуры.
- Окно клавиатуры становится видимым, когда я запускаю скрипты, которые имитируют нажатия клавиш или используют историю буфера обмена Альфреда.
Всего этого можно избежать, открыв окно клавиатуры из меню ввода:
tell application "System Events" to tell process "SystemUIServer"
tell (menu bar item 1 where description is "text input") of menu bar 1
click
click (menu item 1 where title ends with "Keyboard Viewer") of menu 1
end tell
end tell
Обходной путь для второй проблемы - завершить KeyboardViewer, если он работает, но не имеет окон:
if application "KeyboardViewer" is running then
tell application "System Events" to number of windows of process "KeyboardViewer"
if result is 0 then
quit application "KeyboardViewer"
delay 0.1
activate application "KeyboardViewer"
else
quit application "KeyboardViewer"
end if
else
activate application "KeyboardViewer"
end if
2
Посмотрите это решение для Mac OS X 10.6.
В Mac OS X 10.5 вы можете открыть следующую программу:
/System/Library/Components/KeyboardViewer.component/Contents/SharedSupport/KeyboardViewerServer.app/Contents/MacOS/KeyboardViewerServer