我需要构建一个可以在MIcrosoft WIndows上运行的程序,它将是一个系统托盘应用程序。它需要坐在托盘中运行并听取键盘按下。按下映射键时,需要打开一个弹出式面板,列出并显示软件快捷方式,点击后将打开所选软件并关闭弹出窗口。
它基本上是一个应用程序启动器,它将显示一个软件列表,该列表取决于触发了哪个键盘键映射。例如,键盘映射1将在弹出窗口中显示添加到Image editing
类别的软件快捷方式。另一个键会打开同一个窗口,但显示text editing
的软件快捷方式,依此类推。
我是一名网络开发人员(PHP和JavaScript)。构建一个真正的Windows C ++或C#风格的应用程序是我的能力!
这就是允许使用网络语言(JS,HTML,CSS)构建跨平台桌面应用程序的 Electron 软件可能能够构建我需要的东西,并允许我自己做!
所以Electron app需要:
然后还需要一个基本设置面板窗口
问题
我现在的真正问题是。在Windows任务托盘中运行的Electron应用程序是否可以侦听密钥并且还能够打开和关闭弹出窗口?
下面的图片展示了弹出窗口的基本需求。这只是能够在没有主窗口打开或聚焦的情况下从托盘应用程序打开弹出窗口的问题
我已确认系统托盘中的Electron应用程序可以使用globalShortcut监听键盘事件并启动窗口。
globalShortcut http://electron.atom.io/docs/api/global-shortcut/
当应用程序没有键盘时检测键盘事件 对焦。
我还不确定:
答案 0 :(得分:2)
是的,你可以使用globalShortcut。但是globalShortcuts会在操作系统上发出keypress事件,所以如果你将快捷方式设置为CTRL + C,它将在你的应用程序上执行,并且不会默认“复制”。请记住这一点并仔细选择您的快捷方式。
其次,我不知道是否有确切的方法可以执行此操作,但您可以在nodejs上运行任何命令行命令,这样您就可以使用childProcess.execSync()在电子上运行任何app的exe。
您可以随时创建BrowserWindow并指定其位置和大小。当他们失去焦点时,请听他们的events关闭他们。</ p>