首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我在Mac上创建一个新的工作区时,我如何运行一个脚本?

当我在Mac上创建一个新的工作区时,我如何运行一个脚本?
EN

Stack Overflow用户
提问于 2018-03-14 03:01:57
回答 1查看 609关注 0票数 2

当我自动创建工作区时,我想给它添加一个便条,但是我不知道创建新空间时发生了什么事情?

我可以使用applescript或Hammerspoon吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-17 16:42:54

据我所知,没有一个本机键盘快捷方式可以创建一个新的桌面任务控制Stickies都没有AppleScript字典,它们的processes has scripting terminology属性设置为false。因此,一个AppleScript.的UI脚本解决方案是可行的,尽管可能不是很好,这也是我所知道的使用香草的唯一方法。

下面的测试是在macOS High塞拉利昂下进行的,macOS默认设置了键盘快捷键以公开任务控制,即Control-Up Arrow (⌃↑E 223)。此设置可在以下位置找到:

系统首选项>键盘>快捷方式>任务控制> √任务控件E 233E 134⌃↑E 235

下面的示例AppleScript代码假定上述设置为true并已启用:

创建一个新的桌面并为其设置焦点:

代码语言:javascript
复制
tell application "System Events"
    key code 126 using control down -- # Control-Up Arrow 
    delay 0.25
    tell group 2 of group 1 of group 1 of application process "Dock"
        click (every UI element whose description is "add desktop")
        delay 0.25
        click last UI element of list 1
    end tell
end tell
  • 请注意,可能需要根据系统调整delay命令的值,或者可能不需要或不需要额外的delay命令。适当地调整或添加/删除delay命令的值。

这是最简单的部分。Stickies的问题是,用它创建的便笺不能用于特定的桌面,因此,虽然您可以在新的桌面上以编程方式创建一个新的便笺,但它不会停留在新的桌面上,下次打开Stickies时,所有的注释都将放在打开Stickies的活动桌面上。那么,在新创建的桌面上创建一个新的注释真的有什么意义吗?我的直觉说不!

尽管如此,下面的示例AppleScript代码确实经过了这些步骤,并且只包含在其中,因为它是您问题的一部分,但在我看来,它是不实际的,是徒劳的练习。

创建一个新的桌面,为其设置焦点,并创建一个新的粘性注释:

代码语言:javascript
复制
if running of application "Stickies" then
    tell application "Stickies" to quit
    delay 0.5
end if
tell application "System Events"
    key code 126 using control down -- # Control-Up Arrow 
    delay 0.25
    tell group 2 of group 1 of group 1 of application process "Dock"
        click (every UI element whose description is "add desktop")
        delay 0.25
        click last UI element of list 1
    end tell
    tell application "Stickies" to activate
    delay 1
    keystroke "n" using command down
    delay 0.25
    keystroke "This is a new Stickies note on a new Desktop."
end tell 
  • 请注意,可能需要根据系统调整delay命令的值,或者可能不需要或不需要额外的delay命令。适当地调整或添加/删除delay命令的值。

注意:示例AppleScript代码就是这样的,它不使用任何错误处理,只是为了展示完成任务的多种方式之一。用户总是有责任根据需要/需要添加/使用适当的错误处理。请注意,使用try命令作为错误处理程序使用UI脚本非常方便。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49269105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档