您的位置:首页 > 其它

mac os x程序注册开机自启动

2015-01-24 11:08 204 查看
如果想让程序自动启动,则需要使用4个方法,一个用来获取启动项的列表,一个用于向里面增加启动项,一个用来从里面移除一个启动项,还有一个用来将里面的启动项解析为URL.

下面的方法用于获取启动项列表:

==================

?
==================

参数:

1. inAllocator - CFAllocatorRef,用于创建LSSharedFileListRef . 如果使用NULL则意思是采用默认的创建方法

2. inListType - 创建的列表类型 (在这里会是 kLSSharedFileListSessionLoginItems(当前用户的启动项列表) 或者 kLSSharedFileListGlobalLoginItems
(所有用户的启动项列表)).

3. listOptions -其他选项,一般来说就是NULL啦~

==================

第二个方法会在启动项列表中插入一个新的启动项,如果该项已存在,则会根据 insertAfterThisItem 参数指定的位置移动项目

?
==================

参数

1. inList - 我们想要插入启动项的列表.

2. insertAfterThisItem - 指定在哪插,kLSSharedFileListItemBeforeFirst表示最前,kLSSharedFileListItemLast表示最后

3. inDisplayName – 项目的显示明,如果是NULL的话则为应用程序的名字

4. inIconRef –项目的显示图标,如果是NULL的话则为应用程序的图标

5. inURL – 项目的URL,即程序XXX.app的完整地址,包括XXX.app

6. 另外两个你大可不管,留个NULL就好了

===================

第三个方法用于删除

?
===================

参数:

1. inList – 我们想要删除启动项的列表.

2. inItem – 要删除的项

===================

最后一个方法用来解析启动项的 URL,用来检索启动项列表里的东西

?
===================

参数:

1. inItem – 我们想要解析的项.

2. inFlags – 只管留空(NULL)就好了.

3. outURL –想要输出的解析项的URL

4. outRef –原始项的 FSRef . 您就继续留空(NULL)吧

====================

那么到了这里我们就可以开始写代码啦~下面的例子让你的程序可以将自己添加到启动项(第一个方法)或者从中删除(第二个方法)

?
====================

这就是全部了,那么祝你好运~

====================

后记:

这应该讲非常清楚了,我就不多说了,不过代码还是有可以改进的地方,比如说最后for循环那一段,其实可以用Obj-C中的快速枚举机制来替代,写成下面这个样子:

?
这样既用到了Obj-C给的方便的方法,又省去了一个i变量,代码还显得更优雅,何乐而不为呢?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mac os x 自启动