等待 PID 使用 AppleScript 退出



我是AppleScript的新手,但我必须在OSX中重新创建一个我为Windows编写的批处理文件,AppleScript似乎是最好的方法。基本上,脚本将由另一个程序动态创建,然后执行。AppleScript 只需要等待一个进程,我想通过其进程 ID 来识别该进程,如果该进程在特定时间后仍在运行,则会显示一条消息。

这是否可能,如果可能,如何?

提前致谢

在网上搜索了更多之后,我最终找到了解决给定问题的方法。这是我用来检查具有给定 id pid 的进程是否正在运行的 AppleScript 代码

tell application "System Events"
    set runningApplications to (unix id of every process)
        if (runningApplications contains (pid as integer)) is false then
           -- process is not running
        else
           -- process still running
        end if
end tell

这显然只是一个片段。就个人而言,我将上述语句放在repeat循环中,但这提供了一种检查进程 ID(这是unix id)的解决方案。

希望这对其他人有帮助

这里有一些事情(希望)能让你上路:

  • 终端中的 shell 脚本和"do shell script"命令:不知道你对 Unix 有多了解,但你肯定想去那里,并且学习 Bash 的基础知识。有一些限制,你可以运行壳牌通过 AS 通过"do shell 脚本"命令编写脚本。
  • 动态编写脚本:OSAcript和OSAcompile可能会派上用场。 请参见手册页。 OSAscript可以执行脚本或脚本文本,OSAcompile 可以 (!) 将文本编译成脚本形式(非文本形式)等。
  • 脚本
  • 等待/监视过程:更多shell脚本内容,或使用Finder(过去称为Scriptable Finder!),也就是说,Finder的脚本功能(字典),例如告诉应用程序"查找器"以获取进程的名称。shell 版本(可以通过 'do shell script' AS 命令调用)可能是"PS AX |格雷普野生动物园 |格雷普 -v 格雷普 |awk '{print $1}'" (取自堆栈溢出帖子。我喜欢它,因为如果没有,它会返回空字符串匹配)。 根据主脚本的运行方式,了解空闲处理程序在脚本应用程序中工作,以及它与使用 Xcode 构建的应用程序(如果这是您要走的路线),或者只是一个脚本。
  • 显示
  • 一条消息:"显示对话框"是超级简单的方法,完成超时(N 秒后"放弃")。(对不起,如果这是这么基本,我只是侮辱了你的智商:-)
  • 其他:退房(除非您已经沉迷于脚本编辑环境)微笑。这是我的主要脚本编辑器。

最新更新