То, что я хочуКак запустить код при завершении процесса пользовательского агента?
Я хочу, чтобы агент пользователя помощника приложения (LSUIElement в Info.plist это правда), чтобы добавить себя к элементам входа на кончить.
Проблема
Я не могу получить код для запуска до завершения процесса приложения помощника завершается. Код "add to login items" работает нормально.
фон
- У меня есть процесс пользовательского агента помощник приложения, которое работает все время
- При первом запуске, он добавляет себя войти в пункты
- Если приложение было перемещено, при следующем входе, процесс помощника приложения не может быть найден и поэтому не запускается
Что я Пробовал
Интересно, должен ли я подкласс NSApplication и переопределить завершение: или остановить: и поместить мой код там, но это кажется излишним. Неужели есть лучший способ?
Я пробовал все эти разные вещи в делегате NSApp:
-(void)applicationWillTerminate:(NSApplication *)sender {
[self addHelperAppToLoginItems]
}
-(void)applicationDidTerminate:(NSApplication *)sender {
[self addHelperAppToLoginItems]
}
-(NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender {
[self addHelperAppToLoginItems]
}
-(void)applicationDidFinishLaunching:(NSNotification *)aNotification {
[[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self
selector:@selector(addHelperAppToLoginItems)
name:NSWorkspaceDidTerminateApplicationNotification
object:nil];
}
-(void)addHelperAppToLoginItems {
// This code never gets called!
}
Почему делегат метода NSApplication не работает с процессом агента пользователя?
И как я могу получить процесс проверки элементов входа в систему на завершение?
Я был бы очень признателен за любую помощь. Благодаря!
UPDATE 1 6/2/11
После некоторого дальнейшего копания, проблема заключается в том, что процессы более никогда не получить бросить курить, это более характерно для них, чтобы убить ОС.
Это означает, что когда вы выбираете «Завершить» процесс в мониторе активности или вы завершаете работу компьютера, методы делегирования делегата не вызываются.
Когда следующий Applescript запускается, методы делегируют сделать дозвонились:
tell application "System Events"
tell application "LapsusHelperApp"
quit
end tell
end tell
Если вы хотите добавить свое приложение в элементы входа при запуске, почему вы делаете это в 'applicationWillTerminate:'? –