objective-c - 获取登录项目详细信息

标签 objective-c cocoa

我正在尝试获取 mac 上的登录项目列表...

UInt32 seed = 0U;
LSSharedFileListRef loginItems = LSSharedFileListCreate(NULL, kLSSharedFileListSessionLoginItems, NULL);
NSArray *currentLoginItems = (__bridge NSArray *)(LSSharedFileListCopySnapshot(loginItems, &seed));
for(NSString *login in currentLoginItems){

const char *cString = [login UTF8String];
        NSLog(@"%s", Cstring);

}

我正在尝试解析此字符串以获取登录项名称。但是对于“login”字符串上的任何操作,我都会收到如下错误:

[__NSCFType UTF8String]: unrecognized selector sent to instance 0x6000000e9d00

最佳答案

我一直在使用 LSSharedFileList 库,并且我得到的这个函数可能会对您有所帮助。

-(NSArray *)GetLoginItems{

  NSMutableArray *myStrings = [NSMutableArray array];
  CFStringRef LoginItemName = nil;

 // Get Login Items
  LSSharedFileListRef loginItems = LSSharedFileListCreate(NULL, kLSSharedFileListSessionLoginItems, NULL);

  if (loginItems) {

    NSArray *loginItemsArray = (__bridge NSArray *)LSSharedFileListCopySnapshot(loginItems, nil);

    for (int i = 0; i < [loginItemsArray count]; i++) {

        LSSharedFileListItemRef currentItemRef = (__bridge LSSharedFileListItemRef)[loginItemsArray objectAtIndex:i];

        // Gets Items Display Name
        LoginItemName = LSSharedFileListItemCopyDisplayName(currentItemRef);

        [myStrings addObject:(__bridge id _Nonnull)(LoginItemName)];
    }
  }

  CFRelease(loginItems);

  return myStrings;
}

这个返回一个字符串数组,但您可以直接在控制台上打印它们。希望对您有帮助!

关于objective-c - 获取登录项目详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24217805/

相关文章:

iphone - iPhone 上的 Aspell 拼写检查器?

objective-c - 添加 UITapGestureRecognizer 后 UIButtons 将不起作用

iphone - 我可以让我的应用程序中的一个 View 以横向模式显示,而所有其他 View 以纵向模式显示吗?

ios - 如何管理依赖于网络调用和数据库查询的框架?

objective-c - NSArray 内的 NSDictionary

cocoa - NSFileManager contentOfDirectoryAtPath 与 samba 路径的编码问题

ios - 在 iOS 上播放多种声音会产生变形金刚般的噪音

objective-c - react 性 cocoa : creating a signal that applies a map over an observer

objective-c - 10.10 通过TitleBar 的Source List?

java - 阻止用户离开 OS X 上的处理应用程序?