this.$electron.ipcRenderer.on('login-message',(event, arg)=>{
console.log('登陆结果:',arg)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201009182846833.png#pic_center)
那么现在为止,我们就实现了,从渲染进程到主进程,主进程到子进程,子进程到主进程,主进程到渲染进程之间的数据传递。
1.前言在前面做了一些Eelectron-vue的基础调研,包含项目构建,打包应用以及构建安装程序等,其中也碰到了一些问题,基本上能解决的都解决了。做了前面的研究准备,接下来就是项目的实际开发。目前是在主进程中可以启动子进程(这里指另外一个exe程序),并且能获取到子进程返回的数据,所以接下来要调研的就是怎么向子进程传递参数以及怎么获取子进程中返回的数据?2.父子进程的参数传递前面使用的是spawn的方式去实现的父子进程之间的通信,这里也还是使用spawn实现父子进程之间的参数传递。其中子进程传给
使用electron vue开发pc软件调用外部exe的部分记录
1、把外部exe放到project目录下,该project目录,以及含子目录的vue文件只要通过引用当前相对目录就可以索引到外部exe文件。
外部exe的文件放置位置:
vue源文件调用外部exe的部分代码
2、npm build后生成win32-ia32-unpacked文件夹,该文件夹默认不会打包进来外部exe,因此需要把外部exe也拷贝到该目录下,这样electron build生成的exe就不会找不到外部exe而调用.
在之前的文章中,实现了Electron-vue在不同系统打包成安装程序。但这只是前端build/package之后的文件打包,虽然服务端的编译之后的exe文件也可以放到一起打包,并且可以去启动服务端程序。然而不能与服务端通信的话,那么这个程序存在的意义就不大。所以在这片文章中会讲一下怎么在安装之后,启动应用程序调用服务端程序,同时获取服务端的输出值/返回值。
由于不是传统意义上的前后端通信(常见的前后端通信,只需要使用http/https进行通信即可,request发送请求,response返回请
function executor() {
var exec = require('child_process').exec, child;
// exec_path 写入需要执行的命令
var exec_path = "a.exe";
// 执行函数
child = exec(exec_path, function (error, stdout, stderr) {
if(error) return con
var args = process.argv;
console.log(args);//[ 'C:\\Program Files\\nodejs\\node.exe','E:\\jenkins\\workspace\\app.js','hello' ]
获取我们需要的参数:
var arg = process....
使用Electron来解决跨平台桌面应用(由于之前学过vue,没有实战过,所以打算electron和vue一起练手,所以选用了Electron-Vue)。
打包之后的程序,需要提供给用户一键式安装,所以需要将所有的前端代码以及后台提供的exe文件一起打包为可安装的文件。
用户安装之后,打开桌面应用的同时,启动后台服务,以便用户操作
vue调用本地exe程序, 原生js同理1.搭建服务2.路由文件3.前端发起请求
此方法需要后端的配合,简单来说了下实现思路,我是使用node+express搭建了一个服务,通过引用node中的 child_process 模块来实现的这个需求
1.搭建服务
在项目根目录下创建 bin/index.js
const express = require('express'); //npm下载并引入express模块 npm -express -D
const router = require('../rout