Electron:如何在拔出 pendrive 时关闭便携式应用程序

Electron: how to close a portable app on pulling out the pendrive

我用electron做了一个便携app。它工作正常。我把它保存在一个 pendrive 中,所以我不需要安装它并复制到我的硬盘到 运行 它。只需从 pendrive 执行应用程序,我就在我的桌面上 运行ning。但我需要的是实现一个系统,如果你拔出 pendrive,应用程序会自动关闭。我一直在谷歌上搜索类似的东西,发现了很多使用 pendrive 作为万能钥匙的方法。但这并不是我所需要的。我不想关闭电脑,我只需要关闭应用程序并将其从内存中删除即可。有什么方法或 nodejs 库可以帮助我吗?

您可以使用node_usbspy模块来观看USBinsertion/removal。此模块仅支持 Windows.

如果您收到 device_status 为 0 的事件,那么您可以使用 app.quit()

退出应用程序

希望对您有所帮助!

注意:我是 node-usbspy 的作者。

我找到了一个适用于所有平台的实用解决方案:

    const basePath = app.getAppPath()

    setInterval(() => {
        const path = basePath.split('/')
        const baseDir = path.slice(0, -1).join('/')

        fs.writeFile(baseDir + '/portable.txt', '1', err => {
            if(err) {
                app.quit()
            }
        })
    }, 1000)

上面的脚本试图每秒保存一个 TXT 文件。如果fs.writeFilereturns出错,app.quit()调用关闭应用。