DawnLauncher/electron/main/about/index.ts
2023-11-03 15:17:45 +08:00

59 lines
1.6 KiB
TypeScript

import { BrowserWindow, shell } from "electron";
import { closeWindow, getMainBackgorunColor } from "../commons";
import { join } from "node:path";
// 窗口
let aboutWindow: BrowserWindow | null = null;
/**
* 关于窗口
*/
function createWindow() {
// 如果窗口存在先关闭窗口
closeWindow(aboutWindow);
// 创建窗口
aboutWindow = global.aboutWindow = new BrowserWindow({
title: "Dawn Launcher",
frame: false,
parent: global.mainWindow,
height: 212,
width: 600,
type: "toolbar",
maximizable: false,
minimizable: false,
resizable: false,
fullscreenable: false,
focusable: true,
show: false,
backgroundColor: getMainBackgorunColor(),
webPreferences: {
spellcheck: false,
preload: join(__dirname, "../preload/index.js"),
devTools: process.env.NODE_ENV === "development",
},
});
if (process.env.VITE_DEV_SERVER_URL) {
aboutWindow.loadURL(process.env.VITE_DEV_SERVER_URL + "About");
} else {
aboutWindow.loadFile(join(process.env.DIST, "index.html"), {
hash: "/About",
});
}
aboutWindow.webContents.setWindowOpenHandler(({ url }) => {
if (url.startsWith("https:")) shell.openExternal(url);
return { action: "deny" };
});
// 禁用标题栏右键
aboutWindow.hookWindowMessage(278, function (e) {
// 窗口禁用
aboutWindow.setEnabled(false);
// 延时太快会立刻启动,太慢会妨碍窗口其他操作,可自行测试最佳时间
setTimeout(() => {
aboutWindow.setEnabled(true);
}, 100);
return true;
});
}
export { createWindow };