您如何获得有关其他正在运行或重点关注的应用程序的信息?

Fre*_*ell 2 electron

我的动力:我正在写一个应用程序来帮助解决一些量化的自我/时间跟踪类型的事情。我想使用电子来记录有关我当前正在使用哪个应用程序的信息。

有没有办法获取有关Electron中其他应用程序的信息?您至少可以提取有关当前关注的另一个应用程序的信息吗?例如,如果用户正在Chrome浏览器中浏览网页,那么很高兴知道A)他们正在使用Chrome浏览器,B)他们正在浏览的网页标题。

在研究过程中,我发现了以下问题: 触发全局快捷方式时,哪个应用程序具有焦点

看来作者正在使用nodObjc库在OSX上获取此信息。除了其他人正在使用的任何解决此问题的方法之外,我特别好奇电子本身是否可以利用这种方法公开这些信息而无需借助外部库。

And*_*ird 5

以有限的方式,是的,您可以使用电子的desktopCapturer.getSources()方法获得一些此类信息。

这不会使每个程序都在计算机上运行。这只会得到铬认为是可捕获视频的任何来源。这通常等于具有GUI窗口(例如,在Windows上的任务栏上)的活动程序的任何内容。

desktopCapturer.getSources({
  types: ['window', 'screen']
}, (error, sources) => {
  if (error) throw error
  for (let i = 0; i < sources.length; ++i) {
    log(sources[i]);
  }
});
Run Code Online (Sandbox Code Playgroud)


Vad*_*gon 3

不,Electron 不提供 API 来获取有关其他应用程序的信息。您需要直接访问本机平台 API 才能获取该信息。例如,Tockler似乎是通过 shell 脚本来实现的,尽管我个人更喜欢直接通过本机 Node 插件/模块或node-ffi-napi访问本机 API 。