У меня есть демон запуска, и я хотел бы, чтобы он запускал функцию каждый раз при запуске приложения.
В настоящее время я использую NSWorkspace
для проверки запуска приложений.
parasited.plist в /Library/LaunchDaemons/
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>parasited</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/parasited</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>OnDemand</key>
<false/>
</dict>
</plist>
паразит main.m
int main(int argc, const char * argv[])
{
@autoreleasepool {
[[[NSWorkspace sharedWorkspace]notificationCenter]addObserver:[[Parasited alloc] init] selector:@selector(inject) name:NSWorkspaceDidLaunchApplicationNotification object:nil];
}
}
Похоже, мой процесс parasited
продолжает перезапускаться, и я не могу понять, почему. Моя цель — запускать функцию каждый раз, когда запускается приложение, такое как «Safari, Mail, Finder и т. д.».
Ваша помощь приветствуется!