如果想让程序自动启动,则需要使用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变量,代码还显得更优雅,何乐而不为呢?
下面的方法用于获取启动项列表:
==================
|
==================
参数:
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变量,代码还显得更优雅,何乐而不为呢?