Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

151
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!