3

我需要使用 AppleScript 向应用程序发送数字键的按键按下/按键向上事件。但是,命令:

key down "6"
delay 1
key up "6"

发送击键,就好像它们来自数字键盘一样。我需要将它们解释为来自键盘顶部的数字行。

我也尝试过使用(ASCII character 54)而不是文字,但没有成功。

注意我需要发送 key down ——发送keystrokekey code不会发送。

4

2 回答 2

3

尝试发送虚拟键代码key down而不是击键文字,即

key down (key code <int>)

其中int之一在哪里

1 → 18
2 → 19
3 → 20
4 → 21
5 → 23
6 → 22
7 → 26
8 → 28
9 → 25
0 → 29

你会发现所有声明的虚拟键码

/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/Events.h

但是,如果您不想将十六进制转换为整数,那么查找它们的最简单方法可能是使用许多技巧的关键代码,正如dj bazzie wazzie所建议的那样。

于 2012-05-23T12:00:23.940 回答
1

使用需要键码或击键的系统事件时,上下键将不起作用。击键将执行它的值,而键码需要键号。从应用商店下载应用“钥匙代码”以确定正确的钥匙代码(它是免费的)。

--activate the application (and it's first responder) first
tell application "System Events"
    keystroke "1" --value "1"
    key code 18 --1 from upper num keys
    key code 83 --1 from num pad
end tell
于 2012-05-23T10:54:01.300 回答