首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从Electron进程派生仅从已安装的可执行文件在Windows上失败

在Windows上,如果你尝试从Electron主进程派生一个子进程来运行一个已安装的可执行文件(如notepad.exe),可能会遇到问题。这通常是因为Electron的安全策略限制了对某些系统资源的访问。

以下是一些可能的解决方案:

1. 使用 shell 模块

Electron提供了一个 shell 模块,可以用来执行外部应用程序。你可以使用 shell.openPath 方法来启动一个已安装的可执行文件。

代码语言:javascript
复制
const { shell } = require('electron');

shell.openPath('C:\\Windows\\System32\\notepad.exe');

2. 使用 child_process 模块

如果你仍然想使用 child_process 模块,可以尝试使用 spawn 方法,并设置 shell 选项为 true

代码语言:javascript
复制
const { spawn } = require('child_process');

const child = spawn('notepad.exe', [], {
  shell: true,
  stdio: 'ignore'
});

3. 修改Electron的安全策略

如果你需要更细粒度的控制,可以修改Electron的安全策略。例如,你可以使用 webSecurity 选项来禁用同源策略,或者使用 contextIsolation 选项来控制渲染进程和主进程之间的隔离。

代码语言:javascript
复制
const { app, BrowserWindow } = require('electron');

app.on('ready', () => {
  const win = new BrowserWindow({
    webPreferences: {
      webSecurity: false,
      contextIsolation: false
    }
  });

  // ...
});

请注意,禁用安全策略可能会增加应用程序的安全风险,因此应谨慎使用。

4. 使用 electron-reloader

如果你在开发过程中遇到这个问题,可以考虑使用 electron-reloader。这是一个可以帮助你在开发过程中自动重新加载应用程序的工具。

代码语言:javascript
复制
npm install electron-reloader

然后在你的主进程文件中引入它:

代码语言:javascript
复制
try {
  require('electron-reloader')(module);
} catch (_) {}
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

解决Electron安装报错问题

解决办法 解决办法也是简单,如果你是安装失败了,那么先把node_modules中electron删掉,然后重新开始下面的步骤。...深入研究 通过上面的设置基本就解决了Electron安装问题,现在我们可以深入一下,看看它是怎么解决。...下载完后调用extractFile方法,把文件解压了,最后path.txt中把执行文件路径写进去,这个路径下是不同平台下可执行文件路径。 ? 最后我们看一下他是哪里下载。...同样构建Windows系统时候可能会用到依赖windows-build-tools,该依赖会安装一个Python,这时可以使用淘宝镜像文件会更快一些: # Macos "PYTHON_MIRROR...还记得下载完后往path.txt里面写了一个可执行文件路径吗? 我们再回到cli.js文件中,代码中可以看出,里面启动了一个子进程,用子进程启动Electron可执行文件,并且把参数传进去了。

7.6K64

Electron安装过程深入解析(读完此文解决Electron安装失败导致无法启动,无法打包问题)

), 这实际是为了将来制作应用程序安装包时, 避免把electron包和其可执行文件包装两次。...node_modules目录下已经存在了相同版本某个依赖包, 那么就会跳过安装过程,直接让工程使用这个安装依赖包,只有版本不同情况下, 才会在这个包node_modules目录下安装依赖包...图1-1 Electron缓存目录环境变量设置 国内网络环境不理想情况下,安装Electron npm包十有八九会失败, 这就是Electron二进制文件压缩包难以下载成功导致, 知道了缓存目录位置之后...你可以同事电脑拷贝相应版本Electron二进制包, 也可以淘宝镜像源手动下载Electron二进制包,淘宝Electron镜像源地址为: https://npm.taobao.org/..., 让子进程执行Electron可执行文件,并把当前进程命令行参数传递给了这个子进程

7.9K60

Node.js实现桌面应用

最开始我开始写文章就讲过Node.js与Java优缺点,我当时说过,JAVA能做的如果非要使用Node.js最后肯定是能实现,但是我们会考虑用什么更加适合。...npm国内访问比较慢,可能会导致安装依赖失败问题。...macOS中,当点击应用图标并且没有其他窗口打开时,会重新创建一个窗口 ,所以activate方法中要做判断,如果窗口对象win为null,则创建一个新窗口。否则展示存在窗口。 ?...我们先来说说它优点吧: 1.如果我们平常桌面软件需要升级,一般需要下载最新安装包,但是electron-packager打包实际实际是浏览器内核和主线程控制脚本,具体业务逻辑都是独立某个文件夹下...2.除了主进程,你可能还需要一些进程来辅助工作。每新开一个进程,就会产生额外内存开销,太过于依赖cpu。 3.打包文件过大,原因说过了,因为打包会将整个浏览器内核一起打包。

7.9K40

超详细Electron使用教程

但是我windows配置环境时候npm版本不对,导致electron一直安装不成功,问题如下: 1、npm是6.14.10,就差一个小版本,结果安装electron-forge(npx @electron-forge...中,也就是说这里高度是内容高度+24 菜单栏 默认窗口是有菜单栏mac因为是通知栏而不是窗口上,所以不是很明显,但是windows就很明显了。...windows安装windows与mac类似,安装forge后也会默认安装多个maker,如zip、squirrel、rpm和deb。...但是这里有一个问题,productName改成中文后,windows我们通过Squirrel.Windows方式打安装包,但是执行npm run make到squirrel maker时候会报错...这是因为Electron有两个进程:主进程 和 渲染进程,main.js是运行在主进程,而通过BrowserWindow装载load文件或网站则运行在渲染进程,上面提到开发者工具,实际只能查看渲染进程

8K40

线上Electron应用具备哪些特征?

应用程序安装目录 如果你使用 electron-builder 打包你应用时设置了不允许用户修改应用程序安装目录,那么你应用程序会安装在用户的如下目录中: 64 位应用程序安装目录:C:\Program...(其他Electron应用程序使用二进制资源) Electron 应用在 Mac 操作系统安装之后,会以 app 应用形式出现在用户应用程序目录下,开发者可以通过右击菜单显示包内容来查看应用程序内文件组织情况...app.getPath("userData"); 注册表键值 如果开发者使用 Electron 提供开机自启动 API,为应用程序设置了开机自启动功能,那么 Windows 操作系统下,用户注册表如下路径下会增加一个键值对...当开发者 64 位操作系统打 32 位应用程序安装包时,electron-builder 会去服务器下载 32 位 Electron 二进制包,从而完成交叉编译需求,这实际这并不是真正交叉编译...总结 本节我们先介绍了 Electron 应用安装目录结构,不知道你有没有注意到 Windows 安装目录和 Mac 安装目录文件结构差异是非常巨大;接着我们介绍了 Electron 应用在 Windows

1.2K50

IM跨平台技术学习(十二):万字长文详解QQ Linux端实时音视频背后跨平台实践

通过新桌面 QQ Linux 版本分布数据,我们会优先适配 x64、arm64。6.2安装包(可执行文件)这个很好理解,比如软件包,脚本等可运行软件。...Linux 系统中软件通常通过软件包形式进行分发和安装。软件包包含了软件可执行文件、库文件、配置文件等,以及一些元数据,如软件版本、依赖关系等。...基于这个 Demo,我们可以提前 Linux 平台验证音频、视频编解码能力。平台知识到开发环境基本准备差不多了,接下来先介绍下桌面端音视频通话实现方案。...13.2PPB_Graphics3D->Create 失败问题在开发过程中,我们一些虚拟机 Linux 系统发现视频渲染黑屏,通过排查 Log,我们发现以下信息。...流程图如下:这套方案实际是兜底方案,会在 PPB_Graphics3D 初始化失败情况降级到 PPB_Graphics2D。

21510

Electron搭配Reacthistory路由模式打包exe客户端

-D // 用来打包客户端可执行文件 -- 直接点击打包后可执行文件即可运行 // 安装生产相关依赖 cnpm i electron-log // 用于调试时log输出,dev环境会直接在终端打印日志同时会在项目跟目录...exe安装文件或者dmg├── logs // 用于存放项目调试log文件├── main.js // electron进程文件├── media // 项目的多媒体文件诸如.mp3...但是,后来随着electron版本发展,逐渐出来了一种呼声:就是要将node能力renderer.js中分离出来。让renderer.js回归传统js功能。...", // chcp 65001是为了解决Windows平台启动后答应log中文乱码问题 "macpack": "electron-builder build --mac", // 用于打包...dmg安装包 "winpack": "electron-builder build --win" // 用于打包exe安装包 复制代码 electron启动前端项目首先需要将打包后前端代码放到项目

1.6K30

nodeIntegration | Electron安全

0x00 提醒 一篇Electron 安全与你我息息相关文章非常长,虽然提供了 PDF 版本,但还是导致很多人仅仅是点开看了一下,完读率大概 7.95% 左右,但一篇真的是我觉得很重要一篇,对大家了解...Electron 开发应用程序安全有帮助,与每个人切实相关 但是一篇文章内容太多,导致很多内容粒度比较粗,可能会给大家造成误解,因此我们打算再写一些文章,一来是将细节补充清楚,二来是再此来呼吁大家注意...Electron 安全这件事,如果大家不做出反应,应用程序开发者是不会有所行动,这无异于电脑中埋了一些地雷 我们公众号开启了留言功能,大家可以文章下留言讨论啦~ 0x01 简介 Electron...Linux 无法使用 sandbox: true ,所以 sandbox: true 部分在 Windows 上进行验证 【Windows 部分配置安装安装 nvm-windows https:...是指主进程创建窗口时候 sandbox),那到底是哪个版本开始呢?

40710

Linux QQ能打语音视频了!一文详解背后技术实现!

2.3.2 安装包(可执行文件) 这个很好理解,比如软件包,脚本等可运行软件; Linux 系统中软件通常通过软件包形式进行分发和安装。...基于这个 Demo,我们可以提前 Linux 平台验证音频、视频编解码能力; 平台知识到开发环境基本准备差不多了,接下来先介绍下桌面端音视频通话实现方案。...实际通过代码排查,我们发现这个 FD owner 检查 crash,实际electron 一个特性逻辑,我们 content/app/content_main.cc 看到,electron...直接替换可执行文件即可,比如 electron demo、qq 等,找到 electron 可执行文件,替换成你就好。 例:如何 debug electron。...PPB_Graphics3D->Create 失败问题 开发过程中,我们一些虚拟机 Linux 系统发现视频渲染黑屏,通过排查 Log,我们发现以下信息。

57620

shell.openExternal | Electron 安全

打开可执行文件 Windows 11 直接输入二进制可执行文件地址可以直接执行二进制可执行文件,但是不支持传递参数 Windows 中,路径后加上 ?...xxxx 是不会影响定位文件,但是后面的参数也没有传递给要执行文件 MacOS 13.6 Deepin Linux 当传递二进制可执行文件地址给 url 参数时,Windows 和 MacOS 平台都是直接运行二进制可执行文件...Deepin Linux ,我们尝试执行 .desktop 文件,直接 Deepin Linux 桌面上拿一个过来 Deepin Linux 输入我们 smb 链接 执行失败,显示指定位置未挂载...其他系统注册协议 除了 file:// 和 smb:// 以外,系统注册其他协议也是可以被利用,参考文章中作者还给出了 Windows 几个案例 ms-msdt: Microsoft支持诊断工具...Windows 系统远程加载 exe 文件 Windows 11 已经不可用了,似乎发生了移动,但显然这个协议是仍然保留了,是不是后期会修改不得而知 还要注意是那些自定义协议,可能会触发更多有危害效果

31610

开源一款云存储图床平台,支持很多云!

image 如何PicGo迁移 PicList V1.5.0以上版本提供 一键迁移功能,进入 设置页面,然后 PicGo迁移选项点击右侧按钮即可,迁移后请重启应用生效。...优化了PicGo界面,解锁了窗口大小限制,同时美化了部分界面布局 mac平台安装签名,源头解决了PicGo安装包已损坏日经问题 如何在Typora中使用 Windows: 进入Typora...不过需要注意是,开发模式不稳定,会有进程崩溃情况。...注意:如果你网络环境不太好,可能会出现 electron-builder 下载 electron 二进制文件失败情况。...mirrors/electron/" Windows ,则可以使用 set ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ (无需引号

1.8K10

electron快速使用(一)

前言此文是个人学习归纳记录,腾讯云首发,未经允许,严禁转载,如有不对, 还望斧正, 感谢!最近用到了electron, 顺便归纳一下,站在巨人肩膀。...然后,将 Electron 安装为项目的 devDependencies,即仅在开发环境需要额外依赖。...npm install electron --save-dev初始化并且安装Electron 之后,文件夹中会出现一个 node_modules 文件夹,其中包含了 Electron 可执行文件;...继续编写 Electron 应用之前,将使用一个小小脚本来确保主进程入口点已经配置正确。...根目录 main.js 文件中写一行代码:main.jsconsole.log(`欢迎来到 Electron `)因为 Electron 进程是一个 Node.js 运行时,可以使用 electron

19020

前端构造桌面级应用(QQ音乐)

nw.js就是使HTML, CSS, JavaScript写原本浏览器运行程序,也可以桌面端运行。...与nw相比,electron使用人数更多,文档更加齐全,使用起来也更加方便。 社区很强大,基本你遇到问题 都可以社区中解决。...nw.js是和node.js一样是单进程electron改成了双进程,技术实现改变。 electron优点:开源核心扩展比较容易,界面定制性强,原则只要是Web能做他都能做。...而每当你新开一个进程,起步价就是一个nodejs内存开销! 丢帧,这个最严重,可我习惯了native 丝滑. mac下感觉还可以 win下有点够呛。 打出来包太大。...license上来看,Electron是Github,NW.js则是Intel。 nw mac只能构建mac应用 ,windows下只能构建windows

2.7K40

Electron入门教程1 —— 编写第一个桌面应用程序

所以此时我就想,既然移动app都能用vue来写,那Windows桌面应用程序是不是也可以用Vue等web前端技术来开发呢?还真可以,那就是Electron这个框架。...✧ 安装Electron Fiddle工具 开发第一个桌面应用之前,我要向大家推荐一款官方工具,这个工具叫Electron Fiddle ,我们可以在这个工具里面调试代码,你可以更改里面的样例代码运行...== 'darwin') app.quit() }) Linux 和 Windows 应用程序没有打开窗口时会退出,而 macOS 应用程序通常会在没有打开任何窗口情况下继续运行,并且没有可用窗口时激活应用程序应该打开一个新窗口...Electron版本号和它依赖关系到你网页。...进程中通过Node全局进程对象访问这些信息是很简单。但是,您不能仅仅从进程编辑DOM,因为它无法访问渲染器文档上下文。它们处于完全不同进程中! 关于这些进程相关以后具体学习讲解。

1.7K40

TRTC Electron SDK 常见问题收录

不过由于国内网络环境比较复杂,而 Electron 很多开发资源由位于境外服务器,所以很多客户初次对接时会遇到很多环境配置问题。...] 1.0% of 5.56 kB (0 B/s) 问题分析 没有配置代理情况下,因网络运营商出口限制,npm 国内直接访问国外资源时,速度极低甚至超时失败。...,没报任何错误,而实际 Electron 安装失败,只生成了 node_modules/electron 目录,目录中文件不完整,脚本中 "path.txt" 也不存在,导致运行时抛出异常。...苹果电脑出现,因为 mac 10.15 默认启动了保护机制,导致由 vscode 启动 Electron 进程无权使用摄像头和麦克风,所以 Electron 进程会直接崩溃。...操作思路 提前下载 Electron 压缩包。 在出现下载 Electron 缓慢现象或出现超时错误时,打断安装进程。 修改 Electron 安装脚本,去掉下载流程,改为直接解压下载好压缩包。

4.9K20

Electron 常见问题收录

不过由于国内网络环境比较复杂,而 Electron 很多开发资源由位于境外服务器,所以很多客户初次对接时会遇到很多环境配置问题。...] 1.0% of 5.56 kB (0 B/s) 问题分析 没有配置代理情况下,因网络运营商出口限制,npm 国内直接访问国外资源时,速度极低甚至超时失败。...,没报任何错误,而实际 Electron 安装失败,只生成了 node_modules/electron 目录,目录中文件不完整,脚本中 "path.txt" 也不存在,导致运行时抛出异常。...苹果电脑出现,因为 mac 10.15 默认启动了保护机制,导致由 vscode 启动 Electron 进程无权使用摄像头和麦克风,所以 Electron 进程会直接崩溃。...操作思路 提前下载 Electron 压缩包。 在出现下载 Electron 缓慢现象或出现超时错误时,打断安装进程。 修改 Electron 安装脚本,去掉下载流程,改为直接解压下载好压缩包。

18.4K165

Vite ❤ Electron——基于Vite搭建Electron+Vue3开发环境【一】

,该目录根目录下存放打包后安装包     bundled  该目录存放vue打包后文件(html js css img等)     win-unpacked  该目录存放编译后生成可执行文件及相关...项目 让它跑http://localhost下,这样我们修改渲染进程代码时, 会通过Vite热更新机制实时反馈到界面上 Vite除了提供cli指令启动项目外,也提供了API,我这里就是直接调它...应用,你应该知道我说是什么) APP_VERSION是项目的package.json中取版本号, 你当然可以不设置这个环境变量,通过ElectronAPI获取版本号 app.getVersion...() //主进程可用 但通过ElectronAPI获取到版本号,开发环境下,是Electron.exe版本号,不是你项目的版本号 打包编译后,这个问题是不存在。...").toString()得到Electron可执行文件路径 Windows环境下为:node_modules\electron\dist\electron.exe Mac环境下为:node_modules

3.7K20

(1 3)Electron知识学习 · 基础篇

API,例如:创建新窗体,获取电脑相关信息等就交给主进程 也就是说当主进程和渲染进程需要交互时就会涉及到进程之间通讯我后面会演示到 Web技术 Electron 基于 Chromium 和 Node.js...让你可以使用 HTML, CSS 和 JavaScript 构建应用 开源 Electron是一个由OpenJS基金会和一个活跃贡献者社区管理开源项目 跨平台 Electron 兼容 Mac、Windows...调试和性能分析 开发时可对其进行调试和性能分析 Windows 安装程序 可以打包成可执行文件,用户使用体验良好 生命周期 Electron分为主进程和渲染进程 左边是主进程 右边是渲染进程 安装...这里操作基本上前端框架操作基本没什么区别 接下来就是加载Electron开发依赖 引入Electron开发依赖 对当前项目引入Electron开发依赖 执行安装指令 npm install -...我们根目录添加一个index.html页面 <!

97320

electron+vue0到1实现一个桌面端日期时间倒计时软件实践(持续更新)

13,我们可以安装完成后手动安装最新版本 出现这样画面就说明我们已经安装好了,现在我们手动升级一下electron版本 yarn add electron --save-dev 安裝完成之后就可以启动项目了.../plugins/datastore.js' 注意,这里还使用了electronremote模块,需要先进行安装 yarn add @electron/remote 之后background.js加入以下代码...暂时实现成果就这样 注意,目前发现一个问题,当点击windows使用win+d显示桌面时,倒计时也会消失,目前尚未找到完美的解决办法,后续也会继续探索可能解决方案。...send方法即可触发相应事件,然后我们需要在主进程进行事件接收 // background.js import { ipcMain} from 'electron' // 通常页面初始化时引入本模块...如果是mac的话应该是mac可执行文件,可惜我没有。 禁止多开 安装完成之后,会发现重复打开竟然会出现多个窗口,这怎么能行,我们需要禁止多开,官方也提供给了我们方法。

1.3K40
领券