Applescript击键行为不符合预期
我第一次尝试使用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 如果适当的密钥绑定到位。我更改了首选项
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运行时有效,但在作为键盘快捷键或“服务”菜单激活时不起作用。。。