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

rqdpfwrv  于 2022-12-16  发布在  Electron
关注(0)|答案(2)|浏览(459)

我想创建一个个人应用程序与电子管理其他应用程序在我的设备上。问题是,我尝试了不同的方式来创建一个链接,打开我自己的.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
ukqbszuj

ukqbszuj1#

有多种方法可以实现这一点,但使用默认操作系统应用程序打开文件的最简单方法是使用shell

const { shell } = require('electron')
shell.openExternal('options/hollow.bat')
js81xvg6

js81xvg62#

正如@LeonardoPF提到的,有几种方法可以做到这一点...
因此,您的HTML文件为so,并链接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

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

另一种方法是使用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);
   });
}

相关问题