使用AppleScript发送数字键的向下/向上事件

时间:2012-05-23 01:30:06

标签: keyboard applescript

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

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

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

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

注意我需要按键发送 - 发送keystrokekey code不会。

2 个答案:

答案 0 :(得分: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

但如果您不想进行十六进制到整数转换,查找它们的最简单方法可能是使用许多技巧Key Codesas suggested dj bazzie wazzie。< / p>

答案 1 :(得分: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