Applescript击键行为不符合预期

Applescript击键行为不符合预期,applescript,mission-control,Applescript,Mission Control,我第一次尝试使用Applescript,并试图构建一个脚本来设置我在工作中开发的默认应用程序布局。这涉及到在多个任务控制空间中放置应用程序。我手头的问题只是在空间中移动。我在许多类似的帖子中发现,这样的行动可以通过 tell application "System Events" tell process "Finder" keystroke "1" using control down end tell end tell 如果适当的密钥绑定到位。我更改了首选项

我第一次尝试使用Applescript,并试图构建一个脚本来设置我在工作中开发的默认应用程序布局。这涉及到在多个任务控制空间中放置应用程序。我手头的问题只是在空间中移动。我在许多类似的帖子中发现,这样的行动可以通过

tell application "System Events"
    tell process "Finder"
        keystroke "1" using control down
    end tell
end tell
如果适当的密钥绑定到位。我更改了首选项,以便使用control+1移动到第一个MC空间。但是,运行脚本不会做任何事情。这是事件日志输出:

tell application "System Events"
    keystroke "1" using control down
end tell
我看不到任何错误,但同样是:Applescript的新功能。我已经尝试过此命令的许多变体,包括将
控件向下
用大括号括起来,并将对
系统事件的调用
括在对
查找器的调用中,如下所示

tell application "Finder"
    tell application "System Events"
        keystroke "1" using control down
    end tell
end tell
但结果完全相同,没有任何变化。我想我错过了一些东西

根据他的回答,我尝试添加延迟,以确保使用
CMD-r
运行脚本时没有自食其果,但什么都没有发生。我听到的声音效果,当你试图点击出一个重要的焦点窗口(如果有任何意义),这是一个简短的哔哔声。我是否与应用程序交谈不当

编辑

好吧,我有点工作,但我有点困惑为什么会这样

tell application "Finder"
    activate
    delay 0.2
    tell application "System Events" to keystroke "a" using control down
end tell

这就满足了我的需要,但我必须将密钥绑定更改为字母。当Applescript编辑器处于活动状态时,我可以通过按control+1复制错误提示音。我想AE有一个快捷键,使用组合键。但是为什么在Finder应该处于活动状态时运行它呢?

要回答您的问题,在您的工作代码中,区别在于您在发出击键命令之前激活Finder。击键命令总是发送到最前面的应用程序,因此您必须始终确保首先激活应用程序,就像您所做的那样

如果control-1不起作用,那么我怀疑某个Finder命令使用该组合,或者某个其他应用程序在全局上下文中使用该组合,这意味着无论哪个应用程序位于最前面,它都会拦截该命令。否则它应该对你有用

最后,我将从Finder-tell代码块中删除您的系统事件代码行。没有理由告诉查找程序告诉系统事件执行命令。只要把这句话放在“结束语”后面就行了


祝你好运。

我刚刚处理过这个问题-我不想在触发应该是全局快捷方式的东西之前激活finder。按键不起作用,但我尝试了按键代码,这确实起作用:

on run {}
    tell application "System Events"
        key code {18} using {command down}
    end tell
    return "success"
end run
在这个问题上有一个关键代码列表:

应该可以:

告诉应用程序“查找器”
激活
结束讲述
延迟0.2
告诉应用程序“系统事件”
使用{control down}键代码18

结束讲述

我可能回答得太早了。。。虽然这在通过applescript编辑器和automator运行时有效,但在作为键盘快捷键或“服务”菜单激活时不起作用。。。