Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- LSSharedFileListRef globalLoginItems = LSSharedFileListCreate(NULL, kLSSharedFileListGlobalLoginItems, NULL);
- if (globalLoginItems) {
- LSSharedFileListItemRef ourLoginItem = LSSharedFileListInsertItemURL(globalLoginItems,
- kLSSharedFileListItemLast,
- NULL, NULL,
- (CFURLRef)[[NSBundle mainBundle] bundleURL],
- NULL, NULL);
- if (ourLoginItem) {
- CFRelease(ourLoginItem);
- } else {
- NSLog(@"Could not insert ourselves as a global login item");
- }
- CFRelease(globalLoginItems);
- } else {
- NSLog(@"Could not get the global login items");
- }
- AuthorizationRef auth = NULL;
- AuthorizationCreate(NULL, kAuthorizationEmptyEnvironment, kAuthorizationFlagDefaults, &auth);
- LSSharedFileListSetAuthorization(globalLoginItems, auth);
- AuthorizationItem right[1] = {{"system.global-login-items.", 0, NULL, 0}};
- AuthorizationRights setOfRights = {1, right};
- AuthorizationRef auth = NULL;
- AuthorizationCreate(NULL, kAuthorizationEmptyEnvironment, kAuthorizationFlagDefaults, &auth);
- AuthorizationCopyRights(auth, &setOfRights, kAuthorizationEmptyEnvironment,
- (kAuthorizationFlagDefaults
- | kAuthorizationFlagInteractionAllowed
- | kAuthorizationFlagExtendRights), NULL);
- NSString * appPath = [[NSBundle mainBundle] bundlePath];
- // This will retrieve the path for the application
- CFURLRef url = (CFURLRef)[NSURL fileURLWithPath:appPath];
- LSSharedFileListRef loginItems = LSSharedFileListCreate(NULL, kLSSharedFileListGlobalLoginItems, NULL);
- if (loginItems) {
- //Insert an item to the list.
- LSSharedFileListItemRef item = LSSharedFileListInsertItemURL(loginItems,kLSSharedFileListItemLast, NULL, NULL,url, NULL, NULL);
- if (item){
- CFRelease(item);
- }
- }
- CFRelease(loginItems);
- NSString * appPath = [[NSBundle mainBundle] bundlePath];
- // This will retrieve the path for the application
- CFURLRef url = (CFURLRef)[NSURL fileURLWithPath:appPath];
- // Create a reference to the shared file list.
- // We are adding it to the current user only.
- // If we want to add it all users, use
- // kLSSharedFileListGlobalLoginItems instead of
- //kLSSharedFileListSessionLoginItems
- LSSharedFileListRef loginItems = LSSharedFileListCreate(NULL, kLSSharedFileListSessionLoginItems, NULL);
- if (loginItems) {
- //Insert an item to the list.
- LSSharedFileListItemRef item = LSSharedFileListInsertItemURL(loginItems,kLSSharedFileListItemLast, NULL, NULL,url, NULL, NULL);
- if (item){
- CFRelease(item);
- }
- }
- CFRelease(loginItems);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement