electron vue 透明桌面事件穿透
electron 透明桌面事件穿透
网上有很多方式都不怎么理想,这里有个新方式
我这里用到了remote ,引用的包是 @electron/remote
在主流程main.js下引用 import { screen } from 'electron' ipcMain.handle('get-screen-point', () => screen.getCursorScreenPoint());
在渲染流程中,这里是vue import { ipcRenderer } from 'electron' import { BrowserWindow } from '@electron/remote' const win = BrowserWindow.getFocusedWindow() let t = null mounted () { window.addEventListener('mousemove', event => { this.handleMouseMov(event, this) }); }, methods: { getScreenPoint: () => { return ipcRenderer.invoke('get-screen-point') }, handleMouseMov: (e, _this) => { console.log(e, document) if (e.target === document.documentElement) { win.setIgnoreMouseEvents(true); if (t) clearInterval(t); t = setInterval(async () => { _this.getScreenPoint().then(point => { const elem = document.elementFromPoint( Math.floor(point.x), Math.floor(point.y) ); if (elem !== document.documentElement) { win.setIgnoreMouseEvents(false); clearInterval(t); } }) }, 150); } else { win.setIgnoreMouseEvents(false); } } },
在样式中 body,html{ pointer-events: none } // 不穿透层 #noPo{ pointer-events: auto; }
转载标明来路-博客园,
联系方式1763907618@qq.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异