【问题标题】:Can an Electron JS App on MS WIndows in the system tray listen for keyboard events and launch popup windows?系统托盘中 MS WINdows 上的 Electron JS 应用程序可以监听键盘事件并启动弹出窗口吗?
【发布时间】:2017-01-11 04:27:21
【问题描述】:

我需要构建一个可以在 MIcrosoft WINdows 上运行的程序,这将是一个系统托盘应用程序。它需要坐在托盘中运行并聆听键盘按下。当按下映射键时,它需要打开一个弹出面板,其中将列出并显示软件快捷方式,单击这些快捷方式将打开所选软件并关闭弹出窗口。

它基本上是一个应用程序启动器,它将根据触发的键盘键映射显示软件列表。例如,键盘映射 1 将在弹出窗口中显示添加到Image editing 类别的软件快捷方式。另一个键将打开相同的窗口,但显示text editing 等的软件快捷方式。

因为我是一名网络开发人员(PHP 和 JavaScript)。构建真正的 Windows C++ 或 C# 风格的应用程序超出了我的能力范围!

这是一个名为 Electron 的软件,它允许使用 Web 语言(JS、HTML、CSS)构建跨平台桌面应用程序,它可能能够构建我需要的东西并让我自己做!

电子 - http://electron.atom.io/

所以 Electron 应用需要:

  • 坐在托盘上,听听按键操作
  • 当检测到映射键时,需要打开一个弹出窗口,其中包含与该键关联的软件项目类别
  • 当点击弹出窗口中的软件时,需要打开该软件并关闭弹出窗口。
  • 当没有点击任何软件并且在屏幕上的其他任何地方发生点击时,它需要关闭该弹出窗口。

它还需要一个基本设置面板窗口来

  • 为类别分配键盘快捷键
  • 添加/删除存储软件名称文件路径类别和可选图标或图像的软件快捷方式>

问题

我现在真正的问题是。在 windows 任务托盘中运行的 Electron 应用程序是否可以监听键并且还能够打开和关闭弹出窗口?


下图显示了弹出窗口的基本功能。这只是能够从托盘应用程序打开一个弹出窗口而无需打开或聚焦主窗口应用程序的问题


更新

我已经确认系统托盘中的 Electron 应用可以使用 globalShortcut 监听键盘事件并在它们发生时启动窗口。

全局快捷方式 http://electron.atom.io/docs/api/global-shortcut/

当应用程序没有键盘时检测键盘事件 重点。

我还不确定:

  • 从我的应用打开其他程序快捷方式
  • 在选择项目或窗口失去焦点时关闭弹出窗口

【问题讨论】:

    标签: javascript windows electron


    【解决方案1】:

    是的,您可以为此使用 globalShortcut。但是 globalShortcuts 会在操作系统上发出 keypress 事件,因此如果您将快捷方式设置为 CTRL+C,它将在您的应用程序上执行,并且默认情况下不会“复制”。请记住这一点并仔细选择您的快捷方式。

    其次,我不知道是否有确切的方法可以做到这一点,但你可以在 nodejs 上运行任何命令行命令,这样你就可以使用 childProcess.execSync() 在电子上运行任何应用程序的 exe。

    您可以随时创建 BrowserWindow 并指定其位置和大小。并听他们的events 在他们失去焦点时关闭他们。

    【讨论】:

    • 有什么方法可以使用 CTRL + C 进行复制和事件吗?喜欢这个应用clipto.pro/#
    猜你喜欢
    • 2011-02-26
    • 2016-01-04
    • 2018-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多