可以跟踪正在使用的应用程序以及使用 nodejs 打开的文件



对于未来的项目,我需要跟踪用户活动以记录他们的生产力时间。例如,我想检测当前在Adobe Photoshop等应用程序中打开的文件,并检测用户何时切换到其他应用程序或其他文件/选项卡。

要制作我的桌面应用程序,我希望使用电子JS。

你能给我一些跟踪的曲目吗?我没有找到任何允许我这样做的nodejs库,但我知道这是可能的,因为它已经通过电子应用程序完成了,例如:

  • 克罗诺斯 https://electronjs.org/apps/chronos-timetracker
  • 佩莫 https://electronjs.org/apps/paymo-time-tracker
  • 屏幕感知 https://electronjs.org/apps/screenaware

还有一个似乎不是用电子构建的应用程序: https://desktime.com/features

感谢您的帮助

node.js 没有您需要的功能,但它可以调用外部程序来完成工作。在我看来,您需要有一个 PowerShell 脚本(或 C# 程序(才能从操作系统获取活动窗口,并找到该窗口后面进程的所有打开文件句柄。您将从节点调用此脚本,并围绕它构建您的 GUI。

一个很好的起点是这个模块 active-window,它的工作原理与我描述的完全一样:nodejs 进程调用一些外部脚本(在 bash/PowerShell 中(,这些脚本使用特定于操作系统的原语来获取活动窗口。

要获取进程打开的文件列表,您可以使用 Sysinternals 中的句柄实用程序。但是,您可能会遇到一个小问题:像Photoshop这样的应用程序通常不会保持文件句柄打开,它们只是在保存文件时打开它。这意味着您将无法始终检测到打开的文件。我想反复试验是你的朋友。

要查找打开的选项卡,它更复杂。选项卡通常指示应用的内部状态,此信息保存在内存中。某些应用可能会提供 API,但不能保证。我想截图是去这里的方式。

相关内容

  • 没有找到相关文章

最新更新