我是Electron Framework的新手,我正在尝试一个应用程序,我需要在我的应用程序中单击菜单项上启动特定软件(例如firefox)。
现在我正在尝试在Windows平台上构建应用程序(使用Windows 7)。
用例 - 包含静态内容的主页 - 顶部的应用程序菜单以“启动我的软件”作为菜单项 - 点击这个菜单项我想启动一个安装在我系统上的软件(我知道exe文件的路径)
const electron = require('electron');
const app = electron.app;
const { Menu } = require('electron');
const BrowserWindow = electron.BrowserWindow;
var childProc = electron.ChildProcess;
var mainWindow;
const menu = Menu.buildFromTemplate([
{
label: 'Menu',
submenu: [{
label: 'Launch my Software',
click: function () {
var child = childProc.exec;
var executablePath = "<path to executable for the software>";
child(executablePath, function(err, data) {
if (err) {
console.error(err);
return;
}
console.log(data.toString());
});
}
}]
}
]);
Menu.setApplicationMenu(menu);
function createWindow() {
mainWindow = new BrowserWindow({
width: 800,
height: 600
});
mainWindow.loadURL('file://' + __dirname + '/main.html');
mainWindow.setMenu(menu);
mainWindow.on('closed', () => {
mainWindow = null;
});
}
app.on('ready', createWindow);
app.on('activate', () => {
if (mainWindow == null) {
createWindow();
}
});
在npm启动后,项目启动。但是当我点击菜单项来启动我的软件时,我收到以下错误
未捕获的例外情况: TypeError:无法读取未定义
的属性'exec'它指向的是行号。 18 var child = childProc.exec;
我经历了不同的帖子并尝试了这些建议,但它对我没用。任何人都可以帮忙解决这个问题。
提前致谢。
答案 0 :(得分:0)
电子没有ChildProcess
方法或属性。
如果您想要exec
命令,请使用;
const childProcess = require('child_process')
childProcess.exec('')