如何通过代码向山狮osx添加登录项目

时间:2012-08-23 07:20:55

标签: login osx-mountain-lion

我想以编程方式在Mountain Lion(10.8)中添加登录项。

到目前为止,我可以通过编辑此plist来添加登录项:

/Users/test/Library/Preferences/loginwindow.plist

并将项目(路径,名称,隐藏)添加到AutoLaunchedApplicationDictionary字典 在操作系统中不再起作用。添加到此词典的项目不会在登录时启动。我看到登录项目保存在名为com.apple.loginitems.plist

的文件中

但我不明白如何将项目添加到此文件中。我尝试将项目添加到CustomListItems字典中,其中包含名称,路径,隐藏等参数,但它们未在登录时启动。

有谁知道如何从代码登录项添加?

2 个答案:

答案 0 :(得分:0)

我了解您希望在用户登录时自动启动程序。

OS X 版本中,可以通过编辑 loginwindow.plist 手动添加登录项。 {em>当他们将 LaunchAgent LaunchDaemon 功能添加到操作系统时Apple deprecated this approach

由于您使用的是 Mountain Lion ,启动程序的正确方法是为其创建启动。这是一个 .plist 文件,可用于告诉OS X a)执行某些操作(例如:启动 /some/program.app )当 b)发生特定事件时(例如:登录,退出等)

您将找到Apple关于创建 LaunchAgents over here的官方文档。

答案 1 :(得分:0)

这看起来像是一个关于现代做事方式的精彩教程:The launch at login sandbox project

它以隐藏在App Sandbox design guide

中的段落开头
为您的应用创建登录项

要为沙盒应用程序创建登录项,请使用“守护程序和服务编程指南”中的“使用服务管理框架添加登录项”中所述的SMLoginItemSetEnabled函数(在ServiceManagement / SMLoginItem.h中声明)。

(使用App Sandbox,您无法使用LSSharedFileList.h头文件中的函数创建登录项。例如,您不能使用函数LSSharedFileListInsertItemURL。也无法操纵启动服务的状态,例如使用函数LSRegisterURL。)

从那里开始......