安装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不要放在带有空格的路径中
我在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>
参考博客【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后,再继续跟进
第一种:通过window的webcontent对象,使用此种方式需要单独开出一个打印的窗口,可以将该窗口隐藏,但是通信调用相对复杂。
第二种:使用页面的webview元素调用打印,可以将webview隐藏在调用的页面中,通信方式比较简单。
两个对象调用打印方法的使用方式都一样。
本文是通过第二种方法实现静默打印。
三、实现过程:
1、要实现打印功能,首先要知道我们的设备上有哪些打印机。方法是:在渲染线程通过electron的ipcRenderer对象发送事件到主线
app.whenReady().then(() => {
const { spawn } = require('child_process')
const fs = require('fs')
const path = require('path')
const logStream = fs.createWriteStream('app.log', { flags: 'a...
//打开一个子进程
constmyChildProccess=require('child_process');
myChildProccess.spawn('C:\\ProgramFiles\\Notepad++\\notepad++.exe');
npm start 运行看结果,发现notepad++.exe已经被运行起来了
3....
很简单,通过nodejs的子进程child_process执行cmd命令即可
需要注意的是文件的路径问题 文件路径为:
C:\Program Files (x86)\TeamViewer\TeamViewer.exe
可以看到文件路径中含有空格,所以使用前6文件名加上~
然而在目录中这种写法可以匹配到2个文件夹,所以~后面有个2代表匹配到的第二个文件夹
openExe () {
require('child_process').exec('start C:\\Progra~2\\TeamViewer
VUE 03000086:digital envelope routines::initialization error&0308010C:digital envelope routines
CSDN-Ada助手:
VUE 03000086:digital envelope routines::initialization error&0308010C:digital envelope routines
CSDN-Ada助手:
【python】pyinstaller打包时出现Fatal error in launcher: Unable to create process using
CSDN-Ada助手:
【vue】执行npm install element-ui -S报错
CSDN-Ada助手: