对于将来的项目,我需要跟踪用户活动以记录他们的生产时间。我想检测例如在Adobe Photoshop等应用中当前打开的文件,并检测用户何时切换到其他应用或其他文件/标签。
要制作我的桌面应用,我希望使用电子JS
您能给我一些跟踪吗?我找不到任何允许我执行此操作的nodejs库,但我知道这是可能的,因为它已经通过诸如
这样的电子应用程序完成了另一个似乎不是用电子构建的应用程序: https://desktime.com/features
感谢您的帮助
答案 0 :(得分:1)
node.js没有您需要的功能,但是它可以调用外部程序来完成工作。以我的看法,您将需要一个PowerShell脚本(或C#程序)才能从操作系统获取活动窗口,并找到该窗口后面进程的所有打开的文件句柄。您将从节点调用此脚本,并围绕该脚本构建gui。
这个模块active-window的一个很好的起点,正如我描述的那样,它的工作原理是正确的:nodejs进程调用某些外部脚本(在bash / PowerShell中),这些脚本使用OS特定的原语来获取活动窗口。
要获取进程打开的文件列表,可以使用Sysinternals中的handle utility。但是,您可能会遇到一个小问题:Photoshop之类的应用程序通常不保持文件句柄打开,而是在保存文件时将其打开。这意味着您将永远无法检测到打开的文件。我想反复试验是你的朋友。
要查找打开的选项卡,它会更复杂。选项卡通常指示应用程序的内部状态,并且此信息保存在内存中。某些应用程序可能会提供API,但这不能保证。我猜截图就是去这里的方法。