c++ - 在 MacOSX 登录时启动我的程序
问题描述
我正在 MacOSX 中用 C++ 开发一个程序,我想添加一个选项以在登录时启动我的程序。我在 MacOSX 中调查了一些可能的解决方案,但我不太了解哪个是最好的/官方现在建议的解决方案。其中一些很容易,一些更复杂,似乎更容易的不是未来的建议。
这是我发现的简历:
使用OsaScript:这似乎是最简单的一种,但我真的想要一个 C/C++ API,而不是使用 osascript 命令
从官方文档中,我可以看到“服务管理框架”,但我希望用户能够在首选项中看到我的应用程序在登录时启动,并且我不想创建另一个帮助程序包......
再次从官方文档中,我可以看到Launch Services Reference,但我不确定它是否是我需要的。我没有在 C/C++ 中找到任何示例,如果我搜索“登录”关键字,我只会在其中看到两个已弃用的函数......
技术说明 TN2228似乎是一个完整的指南,其中还有一些示例,但它谈到了创建“授权插件”。我真的需要在登录时启动我的应用程序吗?
创建启动守护进程和代理似乎是启动守护进程的首选方式,但我的应用程序并不是真正的守护进程......
那么,你建议我怎么做?
你知道让我的程序在登录时运行的其他方法吗?
您认为哪一个是最简单但不被弃用的解决方案?
你有一些 C/C++ 的例子吗?我找到的所有示例都是其他语言的......
谢谢大家
PS:
最后我选择了 OsaScript 解决方案(一行代码...) 从这个示例中您可以看到,您可以在添加项目时设置属性“名称”,以便以后可以删除它。
我仍在寻找一个简单的 C++ 解决方案...
解决方案
推荐阅读
- pandas - 添加特定于行的时间增量(日期时间清洗)(日期时间)
- javascript - Javascript函数中的布尔返回
- python - 如何在不评估的情况下获取类属性?
- html - HTML 标头不显示
- javascript - Puppeteer - 自定义字体未加载到 pdf 中,但确实出现在屏幕截图中
- android - 连接webapp和android
- html - 如何在 diff. 解析度
- python - 如何使pygame中的对象旋转
- java - 获取 java.lang.ClassCastException:使用 FlatMap 时无法将类 lambda.Student 强制转换为类 java.lang.Comparable
- rust - 为什么它要求本地引用的静态生命周期?