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)
})
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容