如何获取有关正在运行或关注的其他应用的信息?

时间:2016-10-08 08:21:47

标签: electron

我的动机:我正在编写一个应用来帮助处理一些量化的自我/时间跟踪类型的事情。我想用电子来记录我目前使用的应用程序的信息。

有没有办法在Electron中获取有关其他应用的信息?你能否至少提取一下目前关注的另一个应用程序的信息?例如,如果用户正在浏览Chrome中的网页,那么很高兴知道A)他们使用chrome和B)他们正在查看的网页的标题。

在我的研究中,我发现了这个问题: Which app has the focus when a global shortcut is triggered

看起来作者正在使用nodObjc库来获取OSX上的这些信息。除了其他人用来解决这个问题的方法之外,我特别好奇电子本身是否有办法在不借助外部图书馆的情况下暴露这些信息。

2 个答案:

答案 0 :(得分:5)

在有限的方面,是的,你可以使用电子的desktopCapturer.getSources()方法获得一些信息。

这不会让每台程序在机器上运行。这只会让铬认为是视频可捕获的来源。这通常等同于具有GUI窗口的活动程序(例如,在窗口上的任务栏上)。

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

答案 1 :(得分:1)

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