Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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
当使用AppleScript向另一个应用程序发出命令时,是否让一个应用程序执行操作?_Applescript - Fatal编程技术网

当使用AppleScript向另一个应用程序发出命令时,是否让一个应用程序执行操作?

当使用AppleScript向另一个应用程序发出命令时,是否让一个应用程序执行操作?,applescript,Applescript,我对AppleScript一无所知,但我想知道它是否能让我的生活更轻松:有没有办法编写一个AppleScript,告诉Safari/Firefox/Chrome在另一个应用程序(比如TextWrangler)中保存文档时刷新当前选项卡?基本上,我希望映射Command+S键盘快捷键,以便在两个单独的应用程序中同时执行两项操作 如果不可能,您可以编写一个应用程序的脚本,以便保存一个文件时在同一应用程序的另一个窗口中执行命令吗?实现这一点可能有不同的方法,但最简单的方法可能是创建一个脚本,执行您需要

我对AppleScript一无所知,但我想知道它是否能让我的生活更轻松:有没有办法编写一个AppleScript,告诉Safari/Firefox/Chrome在另一个应用程序(比如TextWrangler)中保存文档时刷新当前选项卡?基本上,我希望映射Command+S键盘快捷键,以便在两个单独的应用程序中同时执行两项操作


如果不可能,您可以编写一个应用程序的脚本,以便保存一个文件时在同一应用程序的另一个窗口中执行命令吗?

实现这一点可能有不同的方法,但最简单的方法可能是创建一个脚本,执行您需要的所有步骤(即保存文档并刷新窗口)并将其绑定到触发应用程序中的Cmd+S键盘组合

要使这种方法发挥作用,您需要的是:

  • 将组合键绑定到仅在特定应用程序中有效的脚本的方法。符合该要求:其范围可以限制为单个应用程序(在工作流操作顶部的“仅在”下拉列表中选择),并且可以在系统首选项的键盘首选项窗格中为其分配快捷方式
  • 将您的命令中继到其目标应用程序的方法。。AppleScript可以通过两种不同的方式帮助您,具体取决于您的应用程序是否可编写脚本,即如果它们有脚本字典,您可以在AppleScript编辑器中检查:

    • 如果他们这样做了,并且他们的术语包括一方编辑器的保存操作(大多数基于脚本的文档应用都是以
      save
      的形式进行的),另一方浏览器的页面刷新(Chrome具有
      reload
      ),Safari通过JavaScript迂回,即
      DoJavaScript,获得相同的结果“window.location.reload()”在
      中–我不使用Firefox),您已经设置好了
    • 如果没有,GUI脚本可能会有所帮助,即通过
      告诉应用程序“系统事件”来模拟右UI元素(菜单或工具栏)上的单击,以告诉流程单击菜单y的项目x
    然后,可以将该脚本嵌入到自动机工作流中(准确地说是在“runapplescript”操作中)

  • 正如您所看到的,这在很大程度上取决于您所使用的确切软件。如果您是AppleScript新手,并且上述问题让您感到困惑,我建议您花一点时间在上面(在这里您还可以找到示例脚本,这些脚本将引导您进入GUI脚本等领域)


    最后一点注意:在撰写本文时,(它们确实支持设置在那里的全局组合键–只是不是专门针对它们的组合键)。例如,这意味着您当前无法覆盖TextEdit的Cmd+s快捷方式以保存在Lion中。只要您的编辑器没有沙盒(在活动监视器中轻松检查),您应该对此没有问题。

    一种解决方案是创建文件夹操作,以便在文件夹中保存新文件时刷新当前选项卡

    on adding folder items to theFolder after receiving theFiles
    
        tell application "Google Chrome"
            activate
            tell window 1 to tell active tab
                set URL to (get URL)
            end tell
        end tell
    
    end adding folder items to
    

    上面提到的是,在坚持原始问题的AppleScript组件的同时,对于概述的用例,您可能希望签出或。感谢您的输入。我现在必须做一些研究。我发现我有一个应用程序,它将做一些非常类似于我想要的事情,但很有趣,看看我是否可以完成最初的目标。我实际上是在浏览互联网寻找能满足我需求的应用程序时发现LiveReload的。但我还没有买过,可能会买。