【发布时间】:2017-01-11 04:27:21
【问题描述】:
我需要构建一个可以在 MIcrosoft WINdows 上运行的程序,这将是一个系统托盘应用程序。它需要坐在托盘中运行并聆听键盘按下。当按下映射键时,它需要打开一个弹出面板,其中将列出并显示软件快捷方式,单击这些快捷方式将打开所选软件并关闭弹出窗口。
它基本上是一个应用程序启动器,它将根据触发的键盘键映射显示软件列表。例如,键盘映射 1 将在弹出窗口中显示添加到Image editing 类别的软件快捷方式。另一个键将打开相同的窗口,但显示text editing 等的软件快捷方式。
因为我是一名网络开发人员(PHP 和 JavaScript)。构建真正的 Windows C++ 或 C# 风格的应用程序超出了我的能力范围!
这是一个名为 Electron 的软件,它允许使用 Web 语言(JS、HTML、CSS)构建跨平台桌面应用程序,它可能能够构建我需要的东西并让我自己做!
所以 Electron 应用需要:
- 坐在托盘上,听听按键操作
- 当检测到映射键时,需要打开一个弹出窗口,其中包含与该键关联的软件项目类别
- 当点击弹出窗口中的软件时,需要打开该软件并关闭弹出窗口。
- 当没有点击任何软件并且在屏幕上的其他任何地方发生点击时,它需要关闭该弹出窗口。
它还需要一个基本设置面板窗口来
- 为类别分配键盘快捷键
- 添加/删除存储软件名称、文件路径、类别和可选图标或图像的软件快捷方式>
问题
我现在真正的问题是。在 windows 任务托盘中运行的 Electron 应用程序是否可以监听键并且还能够打开和关闭弹出窗口?
下图显示了弹出窗口的基本功能。这只是能够从托盘应用程序打开一个弹出窗口而无需打开或聚焦主窗口应用程序的问题
更新
我已经确认系统托盘中的 Electron 应用可以使用 globalShortcut 监听键盘事件并在它们发生时启动窗口。
全局快捷方式 http://electron.atom.io/docs/api/global-shortcut/
当应用程序没有键盘时检测键盘事件 重点。
我还不确定:
- 从我的应用打开其他程序快捷方式
- 在选择项目或窗口失去焦点时关闭弹出窗口
【问题讨论】:
标签: javascript windows electron