有没有人有一个C库函数,它相当于AppleScript“告诉应用程序X打开Y”?我没有使用cocoa,只是简单的旧C,理想情况下我希望能够从没有GUI界面的commandl ine应用程序中执行此操作。
这不一定是花哨的,如果我甚至不等待成功或失败的反应,那就没关系。只需要发送正确的Apple活动。
答案 0 :(得分:0)
我认为到目前为止最简单的解决方案是向osascript
命令行实用程序发出系统调用。
#include <stdio.h>
#include <stdlib.h>
int main(void) {
system("osascript -e 'tell application \"X\" to open POSIX file \"/path/to/Y\"'");
return 0;
}
答案 1 :(得分:0)
LSOpenApplication()
,但在10.10中被弃用了。
如果NSWorkspace
不是一个选项,请通过fork()
和execv()
使用open
,这样可以直接传递参数。
答案 2 :(得分:0)
感谢有用的想法,他们确实让我指出了正确的方向。这些答案的合成对我来说似乎很有效,代码假定路径和文件名是可变的:
char wdname[1000], obuf[1000];
const char* filename = "WavySwirl.stl";
getwd(wdname);
sprintf(obuf, "open %s/%s", wdname, filename);
system(obuf);