我想在Mountain Lion(10.8)中以编程方式添加登录项。
到目前为止,我可以通过编辑这个plist:来添加登录项目
/Users/test/Library/Preferences/loginwindow.plist
以及向AutoLaunchedApplicationDictionary
字典添加项目(路径、名称、隐藏)在操作系统中不再工作。登录时不会启动添加到此词典中的项目。我看到登录项目保存在一个名为:com.apple.loginitems.plist
的文件中
但我不知道如何将项目添加到此文件中。我试图用名称、路径、隐藏等参数将该项目添加到CustomListItems
字典中,但在登录时没有启动。
有人知道我如何从代码中添加登录项吗?
我知道您希望在用户登录时自动启动程序。
在OSX的旧版本中,可以通过编辑loginwindow.plist手动添加登录项。苹果公司在操作系统中添加LaunchAgent和LaunchDaemon功能时,反对使用这种方法。
由于您使用的是Mountain Lion,启动程序的正确方法是为其创建一个启动项。这是一个.plist文件,您可以使用该文件告诉OS Xa)在b)发生特定事件(例如:登录、注销等)时执行一些操作(例如:启动/some/program.app)
你可以在这里找到苹果关于创建LaunchAgents的官方文件。
这看起来像是一个关于现代做事方式的伟大教程:在登录沙箱项目上启动
它从应用程序沙盒设计指南中隐藏的一段开始:
为应用程序创建登录项要为沙盒应用程序创建登录项,请使用SMLoginItemSetEnabled函数(在ServiceManagement/SMRoginItem.h中声明),如Daemons和Services Programming Guide中的"使用服务管理框架添加登录项"中所述。
(使用应用程序沙盒,无法使用LSSharedFileList.h头文件中的函数创建登录项。例如,无法使用函数LSSharedFileList InsertItemURL。也无法操作启动服务的状态,例如使用函数LSRegisterURL。)
然后从那里滚。。。