Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.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,我试图以编程方式安装下载的应用程序,因此我使用苹果脚本,因为我在Mac上工作 在这里,我从下载文件夹中的Adobe站点下载了AdobeAIR安装程序应用程序,并尝试使用下面的applescript代码安装该应用程序。在这里,当AdobeAIR安装对话框打开时,我需要单击“我同意”按钮来安装应用程序。 使用下面的代码,我无法单击“我同意”按钮,即使我没有Xcode可访问性检查器来检查元素。请引导我的脚本来处理“我同意”按钮 看起来Adobe安装程序不使用Cocoa,而且不可编写脚本。你的运气可能会

我试图以编程方式安装下载的应用程序,因此我使用苹果脚本,因为我在Mac上工作

在这里,我从下载文件夹中的Adobe站点下载了AdobeAIR安装程序应用程序,并尝试使用下面的applescript代码安装该应用程序。在这里,当AdobeAIR安装对话框打开时,我需要单击“我同意”按钮来安装应用程序。 使用下面的代码,我无法单击“我同意”按钮,即使我没有Xcode可访问性检查器来检查元素。请引导我的脚本来处理“我同意”按钮


看起来Adobe安装程序不使用Cocoa,而且不可编写脚本。你的运气可能会更好。它基于匹配的位图,不依赖于任何底层框架。

您可以尝试在两次单击之间延迟GUI脚本编写命令,但这需要一点工作。由于Adobe安装程序不支持从applescript单击,因此您需要下载并跟随

要获取像素坐标,请在不使用AppleScript的情况下启动安装程序并键入'⌘ + shift+4'以获得像素位置的十字光标(通常用于截图)。记下第一个按钮的坐标,然后点击“esc”并移动到下一个按钮


这是一种非常痛苦的完成工作的方式,但据我所知,没有太多其他选择。

嗨,欢迎来到SO!尝试使用更多的描述问题标题,因为这是人们看到的第一件事。我已经改变了你的答案,给你一个例子,说明你将来的任何问题都可能是什么样子。谢谢Steen提出的宝贵建议。谢谢你的回复。。还有,我还有一件事要做。。在完成安装Adobe应用程序的botton操作后,我们是否可以跟踪正在安装应用程序的进度条的状态??如果是,如何实现?请指导..我不确定AppleScript是否可以这样做,因为它无法激活安装程序窗口。您可以始终使用或查看所有窗口。否则,在MacScript链接中使用
将可见应用程序设置为可见为真的应用程序进程的tell块可能会起作用?您发现答案有用吗?我注意到你没有接受任何问题的答案。你应该学会回馈社会。作者花时间回答了你的问题。
try

    tell application "Finder"

        activate

        open application file "Adobe AIR Installer.app" of folder "Applications" of startup disk

        set this_image to open this_file

        delay 5

        tell application "System Events"

            click button "I Agree" of window "Adobe AIR Setup"

        end tell

    end tell

end try