0

我的应用程序运行一个启动守护程序,因此主应用程序可以与 iTunes 同步启动。守护程序运行没有问题。

但是,当我禁用守护程序在登录时启动时,守护程序已经启动并继续打开主应用程序,直到用户重新启动计算机并且守护程序关闭。

如何终止我的守护进程?因为它是一个没有界面的进程,所以应用程序是没有NSRunningApplication.


编辑

值得一提的是,该应用程序必须被沙盒化。

4

1 回答 1

0

好的,通过从守护程序服务列表中删除帮助应用程序,该应用程序会自动被终止。


代码

- (void)setLaunchHelperAtLogin:(BOOL)launchHelperAtLogin {
    if (launchHelperAtLogin != self.launchHelperAtLogin) {
        // Creating helper app complete URL
        NSURL *bundleURL = [[NSBundle mainBundle] bundleURL];
        NSURL *url = [bundleURL URLByAppendingPathComponent:kHelperPath];

        // Registering helper app
        OSStatus status = LSRegisterURL((__bridge CFURLRef)url, true);
        if (status != noErr) {
            NSError *error = [NSError errorWithDomain:NSOSStatusErrorDomain code:status userInfo:nil];
            NSLog(@"%@", error);
        }

        // Setting login
        if (!SMLoginItemSetEnabled((CFStringRef)kHelperBundleIdentifier, launchHelperAtLogin)) {
            NSLog(@"SMLoginItemSetEnabled failed!");
        }
    }
}
于 2013-03-28T13:11:32.567 回答