Swift调用AppleScript脚本和Shell脚本
文章目录
【注意】最后更新于 October 15, 2018,文中内容可能已过时,请谨慎使用。
当想让自己的app支持播放,但有没有足够的时间来开发自己的播放器,可以先考虑用mpv播放器来实现相关功能,这是AppleScript作为互通的桥梁。
NSTask调用AppleScript
用Process
(原NStask
)进行调用main.scpt
脚本
- swift两种方式
|
|
NSAppleScript调用AppleScript
NSAppleScript
语法:do shell script "shell语句"
,必须在on run {变量名称,逗号隔开}
以end run
结束的闭包里运行。
调用APPleScript脚本片段样例:
|
|
oc调用AppleScript Can you execute an Applescript script from a Swift Application
AppleScript调用shell
在NSAppleScript
语法中调用shell语句
|
|
例:运行shell命令open -na /Applications/mpv.app (videoPath!)
|
|
终端osascript
调用AppleScript
语法
{% codeblock lang:shell %} osascript -e ‘applescript command’ #单引号 {% endcodeblock %}
打开Finder窗口
{% codeblock lang:shell %} osascript -e ’tell app “Finder” to make new Finder window’ {% endcodeblock %}
打开某个程序同时弹出"Hello World"提示框
{% codeblock lang:js %} osascript -e ’tell app “applicationname” to display dialog “Hello World”' {% endcodeblock %}
设置音量,音量大小范围(0-7)
{% codeblock lang:js %} osascript -e “set volume number” {% endcodeblock %}
c语言调用shell
可以用c语言的#include system
函数库:include<stdlib.h>
函数说明:
system()
会调用fork()
产生子进程,由子进程来调用/bin/sh-c string
来执行参数string
字符串所代表的命令,此命>令执行完后随即返回原调用的进程。在调用system()
期间SIGCHLD
信号会被暂时搁置,SIGINT
和SIGQUIT
信号则会被忽略。
返回值:
|
|
如果system()
在调用/bin/sh
时失败则返回127
,其他失败原因返回-1
。若参数string为空指针(NULL
),则返回非零值>。如果system()
调用成功则最后会返回执行shell命令后的返回值,但是此返回值也有可能为 system()
调用/bin/sh
失败所返回的127
,因此最好能再检查errno
来确认执行成功。
文章作者 iTBoyer
上次更新 2018-10-15