Electron 从电子菜单发射主到主事件

Electron 从电子菜单发射主到主事件,electron,Electron,我在主进程中有一个“选择当前项目”的侦听器。从渲染器进程触发时,它可以正常工作,但如何从菜单中发出相同的事件 菜单是在默认的createWindow()中创建的 我的事件处理程序 我不确定我是否理解您所描述的问题,但我所做的是: 函数showProjectPicker存在于main.js中,由如下所示的菜单操作调用。如果我想从渲染器进程调用它,我会通过IPC发送一条消息 { label: 'File', submenu: [ { label: 'Open Project...

我在主进程中有一个“选择当前项目”的侦听器。从渲染器进程触发时,它可以正常工作,但如何从菜单中发出相同的事件

菜单是在默认的
createWindow()中创建的
我的事件处理程序

我不确定我是否理解您所描述的问题,但我所做的是:

函数
showProjectPicker
存在于
main.js
中,由如下所示的菜单操作调用。如果我想从
渲染器
进程调用它,我会通过IPC发送一条消息

{
  label: 'File',
  submenu: [
      { label: 'Open Project...', click: () => { showProjectPicker(); }, accelerator: 'CmdOrCtrl+o' }
    ]
}

这部艾美奖是如何成为一项主要赛事的?您正在直接调用回调函数。
ipcMain.on('select-current-project', async (event, arg) => {
    // code
})
{
  label: 'File',
  submenu: [
      { label: 'Open Project...', click: () => { showProjectPicker(); }, accelerator: 'CmdOrCtrl+o' }
    ]
}
ipcMain.on('select-current-project', async (event, arg) => {
    onSelectCurrentProject()
})

const onSelectCurrentProject = async (event, arg) => {
    if(event !== Null) {
         // This is for rendere
    } else {
         // For menu event in your case
    }
}

var menu = Menu.buildFromTemplate([
    {
        label: 'Menu',
        submenu: [
            {
                label:'Open',
                click() {
                     onSelectCurrentProject(null, args);
                },
                accelerator: 'CmdOrCtrl+O'
            }          
        ]
    }
])