Las teclas de acceso directo de electron globalShortcut entran en conflicto con las teclas de acceso directo globales del sistema.

Solía electron​​​​desarrollar mi propia herramienta de prueba de interfaz (Herramientas de publicación). Después de configurar globalShortcutlas teclas de acceso directo, descubrí que las teclas de acceso directo en la aplicación entraban en conflicto con las teclas de acceso directo del sistema global, lo que hacía que las teclas de acceso directo del sistema no funcionaran correctamente.

electrón globalAtajo

Configuración de teclas de acceso directo

export function initGlobalShortcut(mainWindow) {
    
    
  globalShortcut.register('CommandOrControl+shift+r', () => {
    
    
    app.relaunch()
    app.exit()
  })
  globalShortcut.register('CommandOrControl+shift+delete', () => {
    
    
    resetLocalData()
  })
  globalShortcut.register('F1', () => {
    
    
    shell.openExternal('https://tiven.cn/p/4dc21784/')
  })
  globalShortcut.register('F2', () => {
    
    
    shell.openExternal('https://tiven.cn/service/tools/post-tool')
  })
  globalShortcut.register('F5', () => {
    
    
    mainWindow?.reload()
  })
  globalShortcut.register('CommandOrControl+r', () => {
    
    
    mainWindow?.reload()
  })
  globalShortcut.register('CommandOrControl+q', () => {
    
    
    app.exit()
  })
  globalShortcut.register('CommandOrControl+w', () => {
    
    
    mainWindow?.hide()
    mainWindow?.setSkipTaskbar(true)
  })
  globalShortcut.register('F11', () => {
    
    
    // 是否全屏
    if (mainWindow?.isFullScreen()) {
    
    
      // mainWindow?.minimize();
      mainWindow?.setFullScreen(false)
      mainWindow?.setMenuBarVisibility(true)
    } else {
    
    
      mainWindow?.setFullScreen(true)
      mainWindow?.setMenuBarVisibility(false)
    }
  })
  globalShortcut.register('Esc', () => {
    
    
    // 是否全屏
    if (mainWindow?.isFullScreen()) {
    
    
      // mainWindow?.minimize();
      mainWindow?.setFullScreen(false)
      mainWindow?.setMenuBarVisibility(true)
    }
  })
  globalShortcut.register('CommandOrControl+F12', () => {
    
    
    mainWindow?.webContents.openDevTools({
    
     mode: 'detach' })
  })
}

resolver conflictos

En términos generales, las teclas de método abreviado se inicializarán cuando ready-to-showse abra la ventana principal. Por supuesto, la tecla de método abreviado para cerrar sesión también se puede bluraplicar activamente cuando la aplicación pierda el foco ( ) para evitar conflictos con las teclas de método abreviado del sistema.


  mainWindow.on('ready-to-show', () => {
    
    
    mainWindow.show()
    // 注册全局快捷键
    initGlobalShortcut(mainWindow)
  })

  mainWindow.on('blur', () => {
    
    
    // 失去焦点,注销快捷键
    globalShortcut.unregisterAll()
  })


Bienvenido a: Blog de Tianwen

Supongo que te gusta

Origin blog.csdn.net/tiven_/article/details/131713941
Recomendado
Clasificación