将击键事件发送到OSX

时间:2011-11-06 13:03:33

标签: macos events send keystroke

我希望向OSX发送击键,包括shift,ctrl,cmd,opt组合。基本上我可以在键盘上做任何事情。

我如何做到这一点?

我还想发送鼠标点击。这是一个单独的调查吗?

2 个答案:

答案 0 :(得分:6)

您可以使用CGEvent API,例如CGEventCreateKeyboardEvent后跟CGEventPost

答案 1 :(得分:4)

使用AppleScript,您可以发送任何您想要的密钥。以下是使用各种发送密钥方法的示例:

tell application "System Events"
    keystroke "h"
    keystroke (ASCII character 63)
    key code 38 -- Applescript's reference to keys
    keystroke "k" using {command down, control down}
end tell

使用GUI脚本,您还可以发送鼠标点击。这些往往更多涉及。以下是我写的一个AppleScript,用于禁用与触控板相关的系统偏好设置中的选项和三指双击。

tell application "System Preferences"
    set current pane to pane "Trackpad"
    tell application "System Events"
        tell process "System Preferences"
            if window 1's tab group 1's checkbox 3's value is 1 then
                tell window 1's tab group 1's checkbox 3 to click
            end if
        end tell
    end tell
    quit
end tell