Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 在Mac上创建新工作区时,如何运行脚本?_Macos_Applescript_Hammerspoon - Fatal编程技术网

Macos 在Mac上创建新工作区时,如何运行脚本?

Macos 在Mac上创建新工作区时,如何运行脚本?,macos,applescript,hammerspoon,Macos,Applescript,Hammerspoon,我想在自动创建工作区时向工作区添加便笺,但我不知道创建新空间时会发生什么事件 我可以用applescript还是Hammerspoon 据我所知,没有一个本机键盘快捷键可以创建新的桌面。任务控制和粘滞物都没有AppleScript字典,它们的过程有脚本术语属性设置为假。因此,一个UI脚本解决方案是可行的,尽管可能不是很好,而且是我所知道的使用vanillaAppleScript的唯一方法 以下内容在macOS High Sierra下进行测试,其中macOS默认设置用于显示任务控制,即控制–向上

我想在自动创建工作区时向工作区添加便笺,但我不知道创建新空间时会发生什么事件

我可以用applescript还是Hammerspoon


据我所知,没有一个本机键盘快捷键可以创建新的桌面。任务控制粘滞物都没有AppleScript字典,它们的过程
有脚本术语
属性设置为
。因此,一个UI脚本解决方案是可行的,尽管可能不是很好,而且是我所知道的使用vanillaAppleScript的唯一方法

以下内容在macOS High Sierra下进行测试,其中macOS默认设置用于显示任务控制,即控制–向上箭头(⌃↑)。此设置位于:

系统首选项键盘快捷键任务控制[√] 任务控制⌃↑

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

创建新桌面并将焦点设置为:

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
    命令的值
这是最简单的部分。胶粘物的问题是,使用它创建的注释无法固定到特定的桌面上,因此,虽然您可以通过编程在新桌面上创建新注释,但它不会停留在那里,并且下次打开胶粘物时,所有注释都将位于打开胶粘物的活动桌面上。那么,是否存在其他问题在新创建的桌面上创建新便笺有什么意义吗?我的直觉说没有

也就是说,下面的示例AppleScript代码确实完成了这些步骤,之所以包含其中,只是因为它是您问题的一部分,但我认为它不实用,而且是徒劳的

创建一个新桌面,将焦点设置为该桌面,并创建一个新的粘滞便笺:

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脚本非常方便