mirror of
https://gitee.com/dromara/electron-egg.git
synced 2026-05-15 04:02:10 +08:00
112 lines
2.4 KiB
JavaScript
112 lines
2.4 KiB
JavaScript
'use strict';
|
||
|
||
const path = require('path');
|
||
const fs = require('fs');
|
||
const {exec} = require('child_process');
|
||
const {app, webContents, shell} = require('electron');
|
||
const AutoLaunchManager = require('../lib/autoLaunch');
|
||
const shortcut = require('../lib/shortcut');
|
||
const eLogger = require('../lib/eLogger').get();
|
||
|
||
/**
|
||
* app根目录
|
||
*/
|
||
exports.getPath = function () {
|
||
const dir = app.getAppPath();
|
||
return dir;
|
||
}
|
||
|
||
/**
|
||
* 打开目录
|
||
*/
|
||
exports.openDir = function (dir = '') {
|
||
if (!dir) {
|
||
return false;
|
||
}
|
||
dir = getElectronPath(dir);
|
||
shell.openPath(dir);
|
||
return true;
|
||
}
|
||
|
||
/**
|
||
* 执行js
|
||
*/
|
||
exports.executeJS = function (str) {
|
||
let jscode = `(()=>{alert('${str}');return 'fromJs:${str}';})()`;
|
||
console.log(jscode);
|
||
return webContents.fromId(1).executeJavaScript(jscode);
|
||
}
|
||
|
||
/**
|
||
* 快捷键-注册
|
||
*/
|
||
exports.setShortcut = function (shortcutObj) {
|
||
shortcut.register(shortcutObj, true, function (){
|
||
MAIN_WINDOW.hide()
|
||
});
|
||
|
||
return true;
|
||
}
|
||
|
||
/**
|
||
* 开机启动-开启
|
||
*/
|
||
exports.autoLaunchEnable = function () {
|
||
const autoLaunchManager = new AutoLaunchManager()
|
||
const enable = autoLaunchManager.enable()
|
||
return enable
|
||
}
|
||
|
||
/**
|
||
* 开机启动-关闭
|
||
*/
|
||
exports.autoLaunchDisable = function () {
|
||
const autoLaunchManager = new AutoLaunchManager()
|
||
const disable = autoLaunchManager.disable()
|
||
return disable
|
||
}
|
||
|
||
/**
|
||
* 开机启动-是否开启
|
||
*/
|
||
exports.autoLaunchIsEnabled = function () {
|
||
const autoLaunchManager = new AutoLaunchManager()
|
||
const isEnable = autoLaunchManager.isEnabled()
|
||
return isEnable
|
||
}
|
||
|
||
/**
|
||
* 调用其它程序(exe、bash等可执行程序)
|
||
*/
|
||
exports.openSoftware = function (softName = '') {
|
||
if (!softName) {
|
||
return false;
|
||
}
|
||
|
||
// 资源路径不同
|
||
let softwarePath = '';
|
||
if (app.isPackaged) {
|
||
// 打包后
|
||
softwarePath = path.join(app.getAppPath(), "..", "extraResources", softName);
|
||
} else {
|
||
// 打包前
|
||
softwarePath = path.join(app.getAppPath(), "build", "extraResources", softName);
|
||
}
|
||
// 检查程序是否存在
|
||
if (!fs.existsSync(softwarePath)) {
|
||
return false;
|
||
}
|
||
// 命令行字符串 并 执行
|
||
let cmdStr = 'start ' + softwarePath;
|
||
exec(cmdStr);
|
||
|
||
return true;
|
||
}
|
||
|
||
function getElectronPath(filepath) {
|
||
//filepath = path.resolve(filepath);
|
||
filepath = filepath.replace("resources", "");
|
||
filepath = filepath.replace("app.asar", "");
|
||
filepath = path.normalize(filepath);
|
||
return filepath;
|
||
}; |