如何检查启用SMLoginItemSetEnabled的应用程序?
终端或哪个文件夹,文件包含它?
我在下面运行了2个应用程序,但无法在login =>处启动我需要检查帮助应用程序启用与否。
答案 0 :(得分:1)
您可以使用SMJobCopyDictionary
(或甚至SMCopyAllJobDictionaries
)检查登录项状态,如下所示:
- (BOOL)launchAtLoginWithBundleId:(NSString*)bundleId {
CFDictionaryRef dict = SMJobCopyDictionary(kSMDomainUserLaunchd, (CFStringRef)bundleId);
if (dict == NULL) {
return NO;
}
CFRelease(dict);
return YES;
}
答案 1 :(得分:0)
Apple建议不要使用
SMJobCopyDictionary
@discussion返回的内容 字典并不代表磁盘上的属性列表 并且从发布到发布都不稳定。不推荐使用此例程 并将在以后的版本中删除。没有提供 更换。
更好地使用SMCopyAllJobDictionaries
方法
BOOL enabled = NO;
NSArray *jobs = (NSArray*)SMCopyAllJobDictionaries(kSMDomainUserLaunchd);
if (jobs || [jobs count]>0) {
for (NSDictionary *job in jobs) {
if ([[job objectForKey:@"Label"] isEqualToString:bundleId]) {
ret = [[job objectForKey:@"OnDemand"] boolValue];
break;
}
}
}
[jobs release];