Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

150
Visualizações
Presionar Win + D provoca una ventana de electrones que no se permite minimizar para minimizar en Windows 10

Usando electron 16.9.1, he creado una aplicación cuya ventana no puede minimizarse y cuya propiedad alwaysOnTop está establecida en false . Dicho de otro modo, la idea es tener una ventana que no se pueda minimizar y que siempre esté "debajo" de otras ventanas.

La configuración de la ventana se ve así:

 const win = new BrowserWindow({ resizable: false, movable: false, minimizable: false, maximizable: false, alwaysOnTop: true, fullscreenable: false, show: false, frame: false, backgroundColor: "#00FFFFFF", transparent: true, webPreferences: { nodeIntegration: true, contextIsolation: false } });

Funciona bien, las funciones de la aplicación funcionan como las planeé, pero con un pequeño defecto: una vez que uso el atajo Win + D , la ventana se minimiza. Soy consciente de que muchas aplicaciones se comportan de esta manera, pero lo que realmente quiero saber es si hay alguna forma de evitarlo.

[Actualización] Me di cuenta de la imposibilidad de lo que estoy tratando de pedir y, en cambio, ahora estoy probando otro enfoque: escuchar un evento de "mostrar el escritorio" en electron. Cada vez que se active ese evento, volveré a mostrar la ventana. Y así, el problema ahora ha cambiado a: ¿cómo puedo monitorear tal evento ?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Lo que realmente quiero lograr es permitir que cualquier ventana la supere, pero no el escritorio.

Cada vez que se active ese evento, volveré a mostrar la ventana. Y así, el problema ahora ha cambiado a: ¿cómo puedo monitorear tal evento?

Cuando se establece minimizable: true , BrowserWindow activa el evento de minimize cuando se presiona Win+D y Win+M . Por lo tanto, podemos configurar minimizable: true y escucharlos, incluidos los eventos minimizados por el usuario y la restauración de la ventana. Como frame:false está configurado, el usuario no verá el botón de minimizar, solo estará disponible la opción de hacer clic en el icono de la barra de tareas.

 let mainWindow; let counter = 0; function createWindow() { mainWindow = new BrowserWindow({ width: 600, height: 300, show: false, resizable: false, movable: false, minimizable: true, /* keep it true */ maximizable: false, alwaysOnTop: false, fullscreenable: false, frame: false, backgroundColor: '#00FFFFFF', webPreferences: { preload: path.join(__dirname, 'preload.js'), contextIsolation: true, enableRemoteModule: false, nodeIntegration: false, }, }); mainWindow.loadURL(indexPath); //try to restore window on minimize mainWindow.on('minimize', (e) => { e.preventDefault(); console.log('minimize', ++counter); //try changing delay value setTimeout(() => mainWindow.restore(), 200); }); mainWindow.on('restore', () => { console.log('restore', counter); }); mainWindow.once('ready-to-show', () => { mainWindow.show(); if (dev) { mainWindow.webContents.openDevTools(); } }); mainWindow.on('closed', function () { mainWindow = null; }); }


El escritorio no aparece inmediatamente, lleva tiempo, por lo que no podemos mantener la demora demasiado baja para restaurar nuestra ventana. Deliberadamente mantuve el retraso alto en el código de la demostración. Una vez que llame a la restauración, las próximas llamadas de restauración no tendrán efecto. El inconveniente es que el usuario podrá hacer clic en el ícono de la aplicación en la barra de tareas y la aplicación se recuperará.

about 4 years ago · Juan Pablo Isaza Relatório

0

Ahora tenemos que lidiar con deshabilitar el atajo de teclado Win-D,
entonces usamos el módulo globalShortcut .

 const { app, globalShortcut } = require('electron')
 globalShortcut.unregister('Super+D')

prueba estas teclas EN LUGAR de Super:

  • Meta

Prueba también D mayúscula y d minúscula

POR FAVOR TAMBIÉN PRUEBE:

 globalShortcut.register('Super+D', function() { console.log('Blocked'); return false; })

No se confunda porque le estoy pidiendo que registre la clave que en realidad solicitó anular el registro, ESTA IDEA DE REGISTRAR LA CLAVE SURGIÓ COMO alguien dijo enGitHub

El registro de la clave en la aplicación de electrones hace que no funcione en ningún lado.

Consulte la documentación: https://www.electronjs.org/docs/latest/api/global-shortcut#globalshortcutregisteraccelerator-callback

P. Estoy seguro de que esto no funcionará en su mayoría ya que Windows posee el derecho de la tecla Win, pero inténtalo, te pido que lo try muchas veces porque no lo he probado 😁


Ver
https://stackoverflow.com/a/44308648/14862885
Te presenta un nuevo módulo electronLocalshortcut
probar:

 const {app, globalShortcut} = require('electron'); win = new BrowserWindow(); electronLocalshortcut.register(win, 'Super+D', () => {//Even this uses the same REGISTER method to disable shortcut console.log('Windows Button pressed'); return false; });
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda