3

我使用全局快捷方式来弹出一个对话框。但是我想根据触发快捷方式时具有焦点的应用程序来填充对话框。

但我找不到办法做到这一点。我在这里阅读了扩展代码, 但很难知道如何修改代码,以及如何重新编译电子。

如果有人有指针,将不胜感激:)

4

2 回答 2

0

我自己找到了一个答案,看起来最前面的应用程序(至少在 OSX 上)它仍然是在调用之前具有焦点的应用程序。

这是我的 ClojureScript 代码,用于查找应用程序信息

(defn- get-current-app-info-osx
  "Return info about the current frontmost application on OSX"
  []
  (let [remote  (js/require "remote")
        nodobjc (js/require "nodobjc")]
    (.framework nodobjc "AppKit")
    (let [workspace (.NSWorkspace nodobjc "sharedWorkspace")
      app       (workspace "frontmostApplication")
      app-name  (str (app "localizedName"))
      app-id    (str (app "bundleIdentifier"))]
  {:name app-name
   :id   app-id})))
于 2016-05-14T10:49:42.227 回答
0

我无法找到一种方法来知道之前哪个应用程序具有焦点,但我能够隐藏我的应用程序并将焦点返回到前一个应用程序,模拟从视图菜单中单击“隐藏”选项:

const menu = require('electron').Menu;

menu.sendActionToFirstResponder('hide:');

我希望它有所帮助。

于 2016-05-11T04:16:09.513 回答