首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >你如何才能获得其他应用程序运行或聚焦的信息?

你如何才能获得其他应用程序运行或聚焦的信息?
EN

Stack Overflow用户
提问于 2016-10-08 08:21:46
回答 4查看 4.3K关注 0票数 11

我的动机:我正在写一个应用程序来帮助一些量化的自我/时间跟踪类型的东西。我想使用电子记录的信息,我正在使用的应用程序。

有没有办法获取其他电子应用程序的信息?你至少能找到另一个有焦点的应用程序的信息吗?例如,如果用户正在使用Chrome浏览器浏览网页,那么很高兴知道A)他们使用的是铬,B是他们正在查看的网页的标题。

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

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-10-08 08:59:33

不,电子不提供API来获取其他应用程序的信息。您需要直接访问本地平台API才能获得该信息。例如,托克勒似乎是通过shell脚本这样做的,不过就我个人而言,我更喜欢通过本机Node /模块或节肢动物直接访问本地API。

票数 3
EN

Stack Overflow用户

发布于 2017-08-02 04:02:33

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

这不会使机器上的每一个程序都运行。这只会得到任何铬认为是视频捕捉源。这通常等同于任何具有GUI窗口的活动程序(例如,在windows上的任务栏上)。

代码语言:javascript
复制
desktopCapturer.getSources({
  types: ['window', 'screen']
}, (error, sources) => {
  if (error) throw error
  for (let i = 0; i < sources.length; ++i) {
    log(sources[i]);
  }
});
票数 15
EN

Stack Overflow用户

发布于 2022-06-16 18:46:07

2022答案

安迪·贝尔德的回答无疑是更好的本机电子方法,尽管语法已经过时或不完整。下面是一个完整的工作代码片段,假设在最近的电子版本(13+)中使用远程模块从呈现程序运行:

代码语言:javascript
复制
require('@electron/remote').desktopCapturer.getSources({
  types: ['window', 'screen']
}).then(sources => {
  for (const thisSource of sources) {
    console.log(thisSource.name);
  }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39930279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档