Cocoa:如何跟踪和记录用户活动?

时间:2013-06-24 16:10:26

标签: objective-c xcode macos cocoa

我开始开发我的第一个OS X应用程序,作为练习Objective-C和Cocoa的练习。它是一个菜单栏应用程序,它连续记录(在文本文件中写入)所用应用程序的名称(制作cmd + tab时显示的名称,而不是活动监视器显示的所有进程)以及使用它们所花费的时间。类似的东西:

Name: TextEdit
Start: 10.37am
End: 11.02am

Name: Adobe Photoshop
Start: 11.02am
End: 11.12am

Name: TextEdit
Start: 11.12am
End: 11.13am

Name: Mail
Start: 11.13am
End: 11.28am
…

到目前为止,我已经设法创建了一个基本的menulet应用程序,但我已经陷入困境,因为我真的不知道如何获取这些数据。有谁知道从哪里开始?非常感谢你提前!

大卫

1 个答案:

答案 0 :(得分:0)

您需要使用CGWindowListCopyWindowInfo来获取所有当前窗口的列表。过滤掉非用户窗口,然后找到最顶层的窗口。无论它是什么应用程序都是最前面的应用程序。

这个答案将帮助您找到最前面的窗口:

Front most window using CGWindowListCopyWindowInfo