我希望能够通过Applescript检查鼠标键的状态,这样只有粘性键打开时,脚本才能发送5键(这将触发鼠标左键单击)。这将允许使用快捷方式关闭脚本以关闭粘滞键(按选项键5次)。
到目前为止我的代码:
on idle
tell application "System Preferences"
activate
set current pane to pane id "com.apple.preference.universalaccess"
end tell
tell application "System Events"
tell process "System Preferences"
click menu item 6 of menu 1 --pseudocode
if value of checkbox "Enable Mouse Keys" is 1 then
key code 87 --press the "5" key, triggers mouse press
end if
end tell
end tell
set rn to (random number from 0.8 to 1.0) as text
return rn
end idle
我的问题在于行click menu item 6 of menu 1
以及如何访问“辅助功能”窗格的“鼠标和键盘”部分。如果还不是很明显,我对applescript的经验很少。 > _>
答案 0 :(得分:1)
您可以避免打开prefpane。通过直接读取Universal Access首选项文件中的值
set plistFile to (path to preferences from user domain) & "com.apple.universalaccess.plist" as string -- Get the Universal Access plist path of this use
tell application "System Events" to set mouseDriver to value of property list item "mouseDriver" of contents of property list file plistFile -- read only the value for mouse keys
这将返回 true 或 false ,具体取决于是否开启。
直接读取plist的一个警告是,用户界面中所做的任何更改可能需要大约5秒钟才能写入文件。
您可以阅读here有关property list items
的更多信息答案 1 :(得分:0)
对于OS 10.14 Mojave,更新到上面的@markhunte帖子(也可能在较早版本上工作):
SWIG_ADD_LIBRARY(FooIo TYPE SHARED LANGUAGE python SOURCES FooIo.i
set_target_properties(_FooIo PROPERTIES BUILD_RPATH "$$ORIGIN/../foolib")
SWIG_LINK_LIBRARIES(FooIo ${FOOIO_PYTHON_LIBRARY})
plist项目名称“ mouseDriver”更改为“ SickyKey”