例如,尽管以下代码能够将多个键(shift + h)发送到应用程序“系统事件”,但是当尝试将这些键代码发送到诸如Google Chrome的应用程序时,脚本不会编译。还有另一种方法吗?
Gladiator::Gladiator()
答案 0 :(得分:0)
您可以通过“系统事件”将键代码发送到这样的应用程序:
tell application "System Events"
tell process "Google Chrome"
set frontmost to true
key code 4
key code 14
key code 37
key code 35
end tell
end tell
您可以尝试以下方法:先打开Google Chrome浏览器,并确保焦点位于(空)URL字段上,然后运行上面的脚本-它应在URL字段中键入“ help”。
如果您不希望Chrome浏览器停留在前面,则可以在发送键码后再次将其隐藏。
答案 1 :(得分:0)
作为“已注释”,AppleScript无法将键代码和击键发送到BG应用!
只能在后台触发其他一些(“可见”!)UI元素。
为此,您必须°°可以通过以下方式“选择”应用程序而无需将其置于最前面:
do shell script "open -g /System/Library/PreferencePanes/Keyboard.prefPane/"
…即使该应用程序已经在后台“打开”,该功能仍然有效。
°°提醒我:AS 可以 reveal
在后台使用Sys.Prefs,其他应用 不能。
AS中的第二种替代方法是launch
,它与 some(!)应用一起使用,就像"open -g …"
一样。
正如CJK提到的那样,任何下一个命令都可以通过AppleScript发送:
tell application "System Events" to tell process "System Preferences" ¬
to click checkbox 1 of tab group 1 of window 1
我使用此功能在不失去焦点的情况下切换了一些Sys-Prefs设置。 *
记住:将执行“可见元素”(复选框,按钮…)的仅命令;因此排除了菜单项(=在后台不可见)。
* [“在家”,我在需要AS的 osascript
包装纸的Karabiner快捷方式中使用这些行。