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