我想创建一个跟踪当前活动应用程序(活动窗口)的后台应用程序。我设法通过使用来获取活动的应用程序,GetFrontProcess但现在我需要跟踪它,以便知道它何时发生变化。我想到了两种方法 1.设置一个 Timmer 并在每次定时器触发时重新检查变量(我应该创建一个线程吗?) 2.创建一个专用线程,在循环中检查变量并在每次迭代后休眠几毫秒以避免过度。
效率对我来说很重要,因为这应该是一个无干扰的后台线程。你觉得这些方法对吗?有什么效率方面的考虑吗?很想听听更有效的不同想法。
谢谢你的帮助吉尔
我想创建一个跟踪当前活动应用程序(活动窗口)的后台应用程序。我设法通过使用来获取活动的应用程序,GetFrontProcess但现在我需要跟踪它,以便知道它何时发生变化。我想到了两种方法 1.设置一个 Timmer 并在每次定时器触发时重新检查变量(我应该创建一个线程吗?) 2.创建一个专用线程,在循环中检查变量并在每次迭代后休眠几毫秒以避免过度。
效率对我来说很重要,因为这应该是一个无干扰的后台线程。你觉得这些方法对吗?有什么效率方面的考虑吗?很想听听更有效的不同想法。
谢谢你的帮助吉尔
你可以观察NSWorkspace通知NSWorkspaceDidActivateApplicationNotification。
例如:
[[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self
selector:@selector(appActivated:)
name:NSWorkspaceDidActivateApplicationNotification
object:nil];
并有一个方法:
-(void)appActivated:(NSNotification*) notification {
NSRunningApplication* currentApp = [notification.userInfo valueForKey:NSWorkspaceApplicationKey];
....
}