electron 控制双屏

main.js

function createOtherWin(){
    const newURL = './src/otherWin/otherWin.html';
    let displays = electron.screen.getAllDisplays();
    console.log(displays);
  let externalDisplay = displays.find((display) => {
      return display.bounds.x !== 0 || display.bounds.y !== 0
  })
    console.log(externalDisplay)
  if (externalDisplay) {
      newWindow = new BrowserWindow({
          fullscreen:true,
          x: externalDisplay.bounds.x,
          y: externalDisplay.bounds.y,
            webPreferences: {
              nodeIntegration: true,
          }
      })
      newWindow.loadFile(newURL);
        newWindow.on('closed', () => {   //这一段放外面的话,如果你电脑没双屏会报错。
         newWindow = null
        })
        //主进程监听事件
       ipcMain.on('send-card', (event, obj) => {
           newWindow.webContents.send('sendWebsock', obj);
        })
        ipcMain.on('sendError', (event, res) => {
           newWindow.webContents.send('sendErrorData', res);
        })
  }
  }
app.on('ready', ()=>{
  createWindow();
  createOtherWin();
})

屏幕之间的通信的话用主进程与渲染进程通信的方式很好解决(main.js/ipcMain),
渲染进程
ipcRenderer.send('send-card', obj) 触发主进程的send-card事件.
newWindow.webContents.send('sendWebsock', obj); 把数据传递给副屏幕窗口
副屏幕窗口接收

const { ipcRenderer } = require('electron');
ipcRenderer.on('sendWebsock', (event, obj) => {
    console.log(obj)
})

你可能感兴趣的:(electron 控制双屏)