Javascript 使用OS'打开外部文件;使用NodeJS和Electron的默认应用程序(带Word的docx等)
我正在使用NodeJS/Electron作为桌面应用程序 我想做的是用操作系统的默认应用程序打开一个文件,比如.docx和Word 到目前为止,我尝试的是使用child_process.spawn、.exec或.exefile的方法,但没有得到任何结果 这是我的实际代码:Javascript 使用OS'打开外部文件;使用NodeJS和Electron的默认应用程序(带Word的docx等),javascript,node.js,electron,Javascript,Node.js,Electron,我正在使用NodeJS/Electron作为桌面应用程序 我想做的是用操作系统的默认应用程序打开一个文件,比如.docx和Word 到目前为止,我尝试的是使用child_process.spawn、.exec或.exefile的方法,但没有得到任何结果 这是我的实际代码: var fs = require('fs'), cp = require('child_process'); cp.spawn(__dirname + '/test.docx'); 提前感谢。使用Electron的
var fs = require('fs'),
cp = require('child_process');
cp.spawn(__dirname + '/test.docx');
提前感谢。使用Electron的外壳
模块提供的功能,例如:
const shell = require('electron').shell;
const path = require('path');
shell.openItem(path.join(__dirname, 'test.docx'));
根据文档,shell
模块应该在主/浏览器和渲染器进程中都可用
注:Electron 9.0.0shell.openItemAPI已被异步shell.openPath
API替换
在此添加新electron版本(9+)和导入的代码段:
从“electron”导入{shell};
从“路径”导入路径;
openPath(path.join(uu dirname,'test.docx');
这里已经回答了:我到了这里,错过了一个特定于电子的问题。接受的解决方案只能在Electron应用程序中工作。对于Node.js,在Electron应用程序之外,通常还有一个单独的问题:我们能得到一个关闭的信号吗?在我知道应用程序已经关闭的地方,有没有回电话?@django没有,这是一种“失火后忘记”的事情。如果要检测外部应用程序是否已关闭,则需要使用@VadimMacagon生成它。我一直在尝试ls.on('close'
事件),但它会在ms word打开后立即被触发。请发布示例,或者我应该为其创建另一个问题吗?