使用电子打开外部应用程序

问题描述 投票:0回答:2

我想使用 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
javascript html batch-file electron
2个回答
2
投票

有几种方法可以做到这一点,如@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
的脚本文件中,我们编写该函数。 为此,我们将直接将其链接到您上面刚刚链接的可执行文件。

方法#1

// 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()

方法 #2(已弃用:使用
.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
库...

方法#1

// 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);
}

方法#2

// 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);
   });
}

0
投票

有不同的方法可以做到这一点,但使用默认操作系统应用程序打开文件的最简单方法是使用 shell:

const { shell } = require('electron')
shell.openExternal('options/hollow.bat')
© www.soinside.com 2019 - 2024. All rights reserved.