2017-04-12 116 views
0

在Mac OS上,可以创建运行bash命令的Automator/Bash/Java/ApplieScript来执行某些操作(例如,例如屏幕分辨率可能为),然后运行应用程序(例如需要的游戏一个特定的屏幕分辨率)然后等待,直到应用程序被终止,然后做最后一件事(例如再次更改屏幕分辨率)Mac OS:执行某些操作的脚本,然后启动一个应用程序,然后等待,直到它终止,并最终执行某些操作?

我试图使用所有的Automator,Bash,Java和ApplieScript。我甚至试图将它们中的多个组合到一个运行其他事情的链中,只是为了运行其他事情,直到它终止并运行其他事情,但不是那些semms正常工作。

我改变屏幕分辨率的终端命令,我也得到了在运行游戏的终端命令,但我不能在事情发生的逻辑正确链把它一起...

的命令是:

do shell script "/Volumes/Sierra/Users/xyz/Documents/cscreen -x 1600 -y 900 -r 60" 
do shell script "open steam://run/8930" 
do shell script "/Volumes/Sierra/Users/xyz/Documents/cscreen -x 1280 -y 720 -r 60" 

有人可以帮我吗?

亲切的问候,

凯文

+0

为此目的 - 监视一个进程 - 你需要一个*运行循环*例如一个轻量级的Cocoa或AppleScriptObjC应用程序,它使用'NSWorkspace'通知监视游戏应用程序。 – vadian

+0

你能解释它是如何工作的或给出一个代码示例? –

+0

轻量级应用程序将是最好的。但你也可以用一个applescript应用程序来做到这一点。使用空闲循环等待您的游戏结束。 –

回答

1

你需要的是开放的-W参数:

-W导致开放要等到它打开的应用程序(或已经打开)已退出。与-n 标志一起使用可允许open作为适用于$ EDITOR环境变量的应用程序。

所以在您的例子我会做这样的脚本:

#!/bin/bash 

/Volumes/Sierra/Users/xyz/Documents/cscreen -x 1600 -y 900 -r 60 
open -W steam://run/8930 
/Volumes/Sierra/Users/xyz/Documents/cscreen -x 1280 -y 720 -r 60 

现在开不应该到shell返回控制,直到蒸汽退出。

+0

看起来很完美 - 虽然我没有测试过它。 –