【问题标题】:How can you get information about other apps running or in focus?您如何获取有关正在运行或关注的其他应用程序的信息?
【发布时间】:2020-10-05 18:58:18
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: electron


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多