📅  最后修改于: 2020-10-25 10:57:42             🧑  作者: Mango
我们通常会记住每天在PC上使用的所有应用程序的某些快捷方式。为了使您的应用程序感觉直观并易于用户访问,必须允许用户使用快捷方式。
我们将使用globalShortcut模块在我们的应用程序中定义快捷方式。请注意,加速器是可以包含多个修饰符和键码(由+字符组合)的字符。这些加速器用于定义整个应用程序中的键盘快捷键。
让我们考虑一个示例并创建一个快捷方式。为此,我们将遵循对话框示例,其中使用了打开对话框来打开文件。我们将注册一个CommandOrControl + O快捷方式以打开该对话框。
我们的main.js代码将保持与以前相同。因此,创建一个新的main.js文件,并在其中输入以下代码-
const {app, BrowserWindow} = require('electron')
const url = require('url')
const path = require('path')
const {ipcMain} = require('electron')
let win
function createWindow() {
win = new BrowserWindow({width: 800, height: 600})
win.loadURL(url.format ({
pathname: path.join(__dirname, 'index.html'),
protocol: 'file:',
slashes: true
}))
}
ipcMain.on('openFile', (event, path) => {
const {dialog} = require('electron')
const fs = require('fs')
dialog.showOpenDialog(function (fileNames) {
// fileNames is an array that contains all the selected
if(fileNames === undefined)
console.log("No file selected")
else
readFile(fileNames[0])
})
function readFile(filepath){
fs.readFile(filepath, 'utf-8', (err, data) => {
if(err){
alert("An error ocurred reading the file :" + err.message)
return
}
// handle the file content
event.sender.send('fileData', data)
})
}
})
app.on('ready', createWindow)
每当我们的主进程从渲染器进程收到“ openFile”消息时,该代码就会弹出打开对话框。早些时候,只要运行应用程序,就会弹出此对话框。现在让我们将其限制为仅在按CommandOrControl + O时打开。
现在创建一个具有以下内容的新index.html文件-
File read using system dialogs
Press CTRL/CMD + O to open a file.
我们注册了一个新的快捷方式并传递了一个回调,该回调将在我们每次按下此快捷方式时执行。我们可以在不需要快捷键时注销快捷键。
现在,一旦打开应用程序,我们将收到消息,提示您使用我们刚定义的快捷方式打开文件。
通过允许用户为定义的操作选择自己的快捷方式,可以使这些快捷方式可自定义。