我的动机:我正在写一个应用程序来帮助一些量化的自我/时间跟踪类型的东西。我想使用电子记录的信息,我正在使用的应用程序。
有没有办法获取其他电子应用程序的信息?你至少能找到另一个有焦点的应用程序的信息吗?例如,如果用户正在使用Chrome浏览器浏览网页,那么很高兴知道A)他们使用的是铬,B是他们正在查看的网页的标题。
在我的研究中,我发现了一个问题:触发全局快捷方式时,哪个应用程序具有焦点?
看起来,作者正在使用nodObjc库获取OSX上的这些信息。除了其他人用来解决这个问题的方法之外,我特别好奇的是,电子本身是否有办法公开这些信息而不求助于外部的图书馆。
发布于 2016-10-08 08:59:33
发布于 2017-08-02 04:02:33
以有限的方式,是的,您可以使用电子的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]);
}
});发布于 2022-06-16 18:46:07
2022答案
安迪·贝尔德的回答无疑是更好的本机电子方法,尽管语法已经过时或不完整。下面是一个完整的工作代码片段,假设在最近的电子版本(13+)中使用远程模块从呈现程序运行:
require('@electron/remote').desktopCapturer.getSources({
types: ['window', 'screen']
}).then(sources => {
for (const thisSource of sources) {
console.log(thisSource.name);
}
});https://stackoverflow.com/questions/39930279
复制相似问题