我想使用 Electron 创建一个个人应用程序来管理我设备上的其他应用程序。问题是我尝试以不同的方式创建一个打开我自己的 .exe 应用程序的链接,但这是不允许的。有办法做到还是不可能? 我在下面留下了我的链接代码。
<div class="col-12 col-sm-12 text-center">
<h1>"Aplication"</h1>
<button>
<a href="options/hollow.bat">Hollow</a>
</button>
</div>
此链接引用了一个 .bat 文件。
START D:/SteamLibrary/steamapps/common/HollowKnight/hollow_knight.exe
有几种方法可以做到这一点,如@LeonardoPF提到的......
因此您拥有 HTML 文件并链接您的
app.js
函数(在本例中我们将其称为 doSomething()
<!-- FILE: index.html --->
<script type="text/javascript" src="app.js"></script>
<div class="col-12 col-sm-12 text-center">
<h1>Application</h1>
<button>
<a onclick="doSomething()">Hollow</a>
</button>
</div>
执行此操作的一种方法是使用 shell,如下所示...
现在,在我们挂钩的名为
app.js
的脚本文件中,我们编写该函数。
为此,我们将直接将其链接到您上面刚刚链接的可执行文件。
// FILE: app.js
const { shell } = require('electron');
const path = require('path');
const app = path.join("D:/SteamLibrary/steamapps/common/HollowKnight/hollow_knight.exe");
// Open a local file in the default app
function doSomething(){
shell.openExternal(app);
}
我还没有测试过这个,但显然你也可以使用
.openItem()
。
.openPath(string pathName)
代替)// FILE: app.js
const { shell } = require('electron');
const path = require('path');
const app = path.join("D:/SteamLibrary/steamapps/common/HollowKnight/hollow_knight.exe");
// Open a local file in the default app
function doSomething(){
shell.openItem(app); // If using Electron >=v9 use: shell.openPath(app)
}
另一种方法是使用
child_process
库...
// FILE: app.js
const spawn = require('child_process').spawn;
const path = require('path');
const app = path.join("D:/SteamLibrary/steamapps/common/HollowKnight/hollow_knight.exe");
// spawn the application process
function doSomething(){
spawn(app);
}
// FILE: app.js
const execFile = require('child_process').execFile;
const path = require('path');
const app = path.join("D:/SteamLibrary/steamapps/common/HollowKnight/hollow_knight.exe");
// Execute the file
function doSomething(){
execFile(app, function(err, stdout) {
if(err){
console.error(err);
return;
}
console.log(stdout);
});
}
有不同的方法可以做到这一点,但使用默认操作系统应用程序打开文件的最简单方法是使用 shell:
const { shell } = require('electron')
shell.openExternal('options/hollow.bat')