首页 前端知识 【electron vue】手把手教如何调用外部exe

【electron vue】手把手教如何调用外部exe

2024-02-16 14:02:32 前端知识 前端哥 802 53 我要收藏

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

【electron+vue】手把手教如何调用外部exe

  • 一、安装
  • 二、执行
    • 1.指定路径
    • 2.相对路径
  • 三、问题


一、安装

安装nodejs中的child_process nodejs v16

npm install child_process
返回报错:PS F:\vue\my-project0830-electron> npm install child_process
npm WARN deprecated asar@3.2.0: Please use @electron/asar moving forward.  There is no API change, just a package name change
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated electron-osx-sign@0.5.0: Please use @electron/osx-sign moving forward. Be aware the API is slightly different
npm ERR! code 1
npm ERR!     at ClientRequest.<anonymous> (F:\vue\my-project0830-electron\node_modules\got\source\request-as-event-emitter.js:178:14)

这里显示warn and ERR,怀疑是因为我之前添加了 electron-builder 导致安装失败
electron-builder 安装参考

重新安装,cnpm 这里借用了淘宝镜像

PS :> cnpm install child_process
√ Linked 1 latest versions fallback to F:\vue\my-project0830-electron\node_modules\.store\node_modules
√ Installed 1 packages on F:\vue\my-project0830-electron
√ All packages installed (1 packages installed from npm registry, used 6s(network 6s), speed 175.98B/s, json 1(403B), tarball 580B, manifests cache hit 0, etag hit 0 / miss 0)

dependencies:
+ child_process ^1.0.2

二、执行

参考博客electron项目中调用第三方exe应用
建议需要执行的exe不要放在带有空格的路径中

1.指定路径

我在vue electron项目中的xxx.vue中调用,功能实现,点击按键运行exe

<template>
    <el-button class="Button" @click="Button" 
           type="primary" size="medium" 
           style="">
           开始检查
       </el-button>
</template>

<script>
	export default{
		data(){},
  	 	methods:
  	 	{
  	 		 Button() 
  	 		 {
  	 			require('child_process').exec('start F:\\vue\\print_txt.exe')
        	}, 
    	}
}
</script>

2.相对路径

参考博客【electron-vue+python】electron启动调用python打包的exe

methods:{
    checkButton() {
   		const { spawn } = require('child_process')
 		const child = spawn('print_txt.exe') 
		child.on('error',(err) => {
    	console.log('err => ',err)
            })
      },
}

我把代码放在了methods()里
现象:点击按钮运行exe程序,同时在工程路径下生成了txt。

三、问题

调用exe的时候会刷新界面,本来是想执行exe后,自动调取产生的txt文件,并将txt文件内容显示在界面上的。
后续:刷新界面的原因是因为,本人在VS code环建下编写,执行exe后在工程目录下生成文件,工程目录下生成文件会导致VS code 重新编译,导致界面刷新,之后把界面生成exe后,再继续跟进

转载请注明出处或者链接地址:https://www.qianduange.cn//article/2167.html
标签
评论
发布的文章

vue-echarts实现多功能图表

2024-03-02 09:03:54

echarts参数详细介绍

2024-03-02 09:03:53

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!