Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 可以跟踪正在使用的应用程序以及使用nodejs打开的文件_Node.js_Windows_Macos_Electron_Time Tracking - Fatal编程技术网

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

Node.js 可以跟踪正在使用的应用程序以及使用nodejs打开的文件,node.js,windows,macos,electron,time-tracking,Node.js,Windows,Macos,Electron,Time Tracking,对于未来的项目,我需要跟踪用户活动以记录他们的生产时间。例如,我想检测Adobe Photoshop等应用程序中当前打开的文件,并检测用户何时切换到其他应用程序或其他文件/选项卡 要制作我的桌面应用程序,我希望使用electron JS 你能给我一些追踪的线索吗?我找不到任何允许我这样做的nodejs库,但我知道这是可能的,因为它已经在eletron应用程序中完成了,如: 克洛诺斯 佩莫 屏幕感知 另一个应用程序似乎不是用electron构建的: 感谢您的帮助node.js没有您需要的功能

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

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

你能给我一些追踪的线索吗?我找不到任何允许我这样做的nodejs库,但我知道这是可能的,因为它已经在eletron应用程序中完成了,如:

  • 克洛诺斯
  • 佩莫
  • 屏幕感知
另一个应用程序似乎不是用electron构建的:


感谢您的帮助

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

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

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


要查找打开的选项卡,则更为复杂。标签通常表示应用程序的内部状态,这些信息保存在内存中。有些应用程序可能会提供API,但这并不能保证。我想屏幕截图就是解决这个问题的方法

谢谢你的回答!从现在起我再也没有使用过node js,我也不认为我必须使用其他语言,再次感谢您的帮助