运行 来自 electron-angular9 的 exe

Running an exe from electron-angular9

我有一个 electron-angular9(不是 js)项目,我想 运行 一个控制台应用程序,其中包含来自 electron 应用程序的一些参数。

可能吗?如果是,我该怎么做?

这是可能的,通过使用 IpcMain 和 ElectronService。 基本上我们所做的是从 chromiu 进程向 electron 进程发送消息,因为 chromiu 进程不是 运行 来自本地计算机的 exe 文件的电缆,因为它是一个安全问题,因此被设计阻止从做它。 一旦电子进程获得消息,它就可以使用所需的参数调用可执行文件。

在我们启动整个应用程序的 main.js 文件中需要定义:

 const {ipcMain} = require('electron')

 ipcMain.on('synchronous-message', (event, arg) => {
     let executablePath = ".\my.exe";
     var child = require('child_process').execFile;
     child(executablePath, arg, function (err, data) {
         console.log(data.toString());
         event.returnValue = data;
     });
 
 });

并在您要发送的 angular 项目中 synchronous-message :

 import { ElectronService } from 'ngx-electron';
 
 constructor(private _electronService: ElectronService) {}
 
 public CallExe(){
    var parameters = [ this is the parameters array];
     var pong = this._electronService.ipcRenderer.sendSync('synchronous-message',parameters);
     console.log(pong);
 }