Javascript 在操作系统中创建实际的鼠标点击

Javascript 在操作系统中创建实际的鼠标点击,javascript,electron,Javascript,Electron,我正在创建一个电子应用程序,作为另一个应用程序的覆盖 有时我的界面部分不可见,但electronBrowserWindow仍在占用空间(我希望避免动态调整BrowserWindow) 当有人点击我的覆盖图的一个不可见部分时,我会完全关闭界面,下面是实现这一点的代码: main.js: const{BrowserWindow,ipcMain}=require('electron')) //Win是BrowserWindow的一个实例 ipcMain.on('closeWindow',()=>{if

我正在创建一个电子应用程序,作为另一个应用程序的覆盖

有时我的界面部分不可见,但electron
BrowserWindow
仍在占用空间(我希望避免动态调整
BrowserWindow

当有人点击我的覆盖图的一个不可见部分时,我会完全关闭界面,下面是实现这一点的代码:

main.js:
const{BrowserWindow,ipcMain}=require('electron'))
//Win是BrowserWindow的一个实例
ipcMain.on('closeWindow',()=>{if(win!=null)win.close()})
renderer.js:
常量{ipcRenderer}=require('electron')
让invisibleElem=document.getElementById('InvisiblElement')
/*invisibleElem通过将“不透明度”设置为0来确保不可见
事件监听器实际上是触发器*/
invisibleElem.addEventListener('mousedown',()=>{
发送('closeWindow')
})
在我的窗口被
main.js中的
win.close()
关闭后,我想立即让操作系统在当前光标位置再次触发鼠标单击。这将确保用户体验就像我的覆盖根本不存在一样(因为从用户的角度来看,它不存在)


如何实现这一点?

robotjs是一个节点库,可以控制和创建鼠标点击。安装和发布不像jsut那样简单,添加一个包,您可能会感兴趣,这看起来是一个很好的解决方案。你知道如何将它集成到公司的构建系统中吗?我没有与electron forge合作过,尤其是他们最近发布的新主要版本。但是,electron(正确设置)在渲染器过程中使用节点模块通常没有问题。我甚至有一个本地节点模块(使用N-API)在渲染器中工作,所以我认为你不会有什么大问题。这不是问题所在。问题是RobotJS需要为您的特定操作系统下载二进制文件。当需要为多个操作系统发布我的应用程序时,需要指示electron forge为每个操作系统包含正确的二进制文件。您可以做的是下载每个平台的
.node
版本,使用
process.platform
动态导入正确的版本,然后直接调用方法。