运行 来自 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);
}
我有一个 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);
}