我曾考虑将其发布到Ask Different,但由于主要关注代码,因此我认为它属于此处。

我已经在Mac上创建了一个用于切换空间的宏,并且由于升级到Sierra之后,以下AppleScript不再起作用。 有人知道有什么变化吗?

tell application "System Events" to key code 124 using control down

tell application "System Events" to key code 123 using control down

这是在终端中运行时的输出(请注意^[[1;5D ):

14:16 isaac@Isaac ~ $ osascript -e 'tell application "System Events" to key code 123 using control down'
^[[1;5D14:18 isaac@Isaac ~ $ ;5D

通过AppleScript编辑器运行时,什么也没有发生。

#1楼 票数:2

确保键码与系统偏好设置中的键盘快捷键匹配。 这是我在系统偏好设置中的键盘快捷键,它们与我的AppleScript命令正确匹配。

在此处输入图片说明

tell application "System Events"
    key code 18 using (control down) -- Desktop 1
end tell

tell application "System Events"
    key code 19 using (control down) -- Desktop 2
end tell

tell application "System Events"
    key code 20 using (control down) -- Desktop 3
end tell

tell application "System Events"
    key code 21 using (control down) -- Desktop 4
end tell

这些对我来说在最新版本的Sierra中正常运行。

#2楼 票数:2 已采纳

是的,这是一个错误。

要使用Control键模拟某些全局快捷方式,该命令需要使用fn键( Sierra的一种解决方法)。

不能将fn键与AppleScript的key code命令一起使用,但是可以通过Python脚本中的Core Graphics框架的方法来使用。


这是模拟此快捷方式的脚本->( 向右箭头+控件 ),您可以在终端中运行脚本(在sh,bash或任何类似的shell中)

/usr/bin/python -c 'import time; import Quartz.CoreGraphics as QCG; e = QCG.CGEventCreateKeyboardEvent(None, 124, True); QCG.CGEventSetFlags(e, (QCG.kCGEventFlagMaskControl | QCG.kCGEventFlagMaskSecondaryFn)); QCG.CGEventPost(QCG.kCGHIDEventTap, e); time.sleep(0.1); QCG.CGEventSetType(e, QCG.kCGEventKeyUp); QCG.CGEventPost(QCG.kCGHIDEventTap, e)'

这是要在“ 脚本编辑器 ”应用程序中测试的AppleScript:

--  For switching spaces, 124 = the Right Arrow key, use 123 for the Left Arrow key
do shell script "/usr/bin/python -c 'import time; import Quartz.CoreGraphics as QCG; e = QCG.CGEventCreateKeyboardEvent(None, 124, True); QCG.CGEventSetFlags(e, (QCG.kCGEventFlagMaskControl | QCG.kCGEventFlagMaskSecondaryFn)); QCG.CGEventPost(QCG.kCGHIDEventTap, e); time.sleep(0.1); QCG.CGEventSetType(e, QCG.kCGEventKeyUp); QCG.CGEventPost(QCG.kCGHIDEventTap, e)'"

  ask by Isaac translate from so

未解决问题?本站智能推荐:

2回复

运行命令不起作用? AppleScript的

我原来有这些代码 set Chrome_List to {"Open Chrome", "Open Google Chrome", "Open GoogleChrome", "Open browser", "Open chrome"} --List of words, meani
2回复

Applescript:“密钥代码”命令不起作用

我正在尝试运行代码以打开应用并在其中执行键盘快捷键。 当我尝试运行代码时,在突出显示“键”的同时,收到一条消息:“预期行尾但找到了属性”。 “键码”是否注册为两个不同的命令?
2回复

简单的系统事件AppleScript在NSAppleScript中不起作用

在Apple Script应用程序中这可以正常工作: 但是在NSAppleScript中,它在“关键代码”上出错。 引号已正确转义,几种不同的语法都做同样的事情。 应用程序中有前面的东西可以激活接收按键的应用程序,但这在项目中不需要,如果可以的话,它可以编译,因此很明显,NSAppl
1回复

Applescript文件夹操作不起作用

我写了一个Applescript,它将监视文件夹中是否有新输入。 收到新项目后,它将打开iTunes,创建播放列表,然后将新文件添加到播放列表中。 但是,当我通过“文件夹操作设置”将脚本作为“文件夹操作”附加并添加新项目时,什么也没有发生。 我已将该脚本放在/ Library / Scri
2回复

在多个操作系统上使用脚本启动可执行jar

我用Java编写了一个程序,并且有一个可执行的jar,客户需要在Windows或Mac机器上打开它。 我的一些客户......不是计算机人员。 因此,我需要编写两个脚本(如果有人知道如何使用Mac和Windows的单个脚本,这将是惊人的),通过双击Mac和Windows自动启动我的可执行
2回复

AppleScriptTask 命令在 Excel 2016 for Mac VBA 中不起作用

我有一个 Excel 文件,它大量使用 MacScript 命令,该命令已在 Excel 2016 中弃用。 我尝试使用新的 AppleScriptTask 命令,如此 StackOverflow 线程中所述: MacScript 函数在 Office for Mac 2016 中运行不佳! 有
2回复

Applescript 打开终端、运行命令和显示 - 不工作

我正在尝试创建一个快捷键来打开当前文件夹中的终端。 环顾四周,发现这段代码创建了一个服务(给这个服务添加快捷方式的部分解决了),只是添加的东西是“;清除”和一些“激活”所以它显示 它不像我想要的那样工作。 麻烦: 它在终端打开两个窗口,不知道为什么。 它与添加的“激活”无关……它一直不知
1回复

使用键盘快捷键执行服务时,Apple脚本全局变量不起作用

我已经在Automator中创建了一个服务,以每次使用不同的颜色模式打开终端。 在自动器内部,它工作正常。 但是当我使用键盘快捷键执行该服务时,它不起作用。 似乎每次都在设置全局变量。 有任何想法吗? 谢谢