IF语句基于鼠标键的条件

时间:2013-03-08 04:21:45

标签: applescript

我希望能够通过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的经验很少。 > _>

enter image description here

2 个答案:

答案 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”