6

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

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

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

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

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

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

4

2 回答 2

1

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

版本的OS X中,可以通过编辑loginwindow.plist手动添加登录项。Apple在向操作系统添加LaunchAgentLaunchDaemon功能 时弃用了这种方法。

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

您将在此处找到 Apple 关于创建LaunchAgents 的官方文档。

于 2013-10-03T02:05:23.403 回答
0

这看起来像是一个关于现代做事方式的很棒的教程:登录沙盒项目的启动

它从隐藏在App Sandbox 设计指南中的一段开始:

为您的应用创建登录项

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

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

然后从那里滚...

于 2014-03-28T18:45:25.653 回答