我想以编程方式在Mountain Lion(10.8)中添加登录项。
到目前为止,我可以通过编辑此plist来添加登录项:
/Users/test/Library/Preferences/loginwindow.plist
并将项目(路径,名称,隐藏)添加到AutoLaunchedApplicationDictionary
字典
在操作系统中不再起作用。添加到此词典的项目不会在登录时启动。我看到登录项目保存在名为com.apple.loginitems.plist
但我不明白如何将项目添加到此文件中。我尝试将项目添加到CustomListItems
字典中,其中包含名称,路径,隐藏等参数,但它们未在登录时启动。
有谁知道如何从代码登录项添加?
答案 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。)
从那里开始......