From 6601adb155a2d55a89cb8f67f333f1c1478e35a6 Mon Sep 17 00:00:00 2001 From: yuruo Date: Fri, 7 Jun 2024 08:59:07 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20=E6=9B=B4=E6=96=B0(ui):=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0IPC=E9=80=9A=E4=BF=A1=E5=92=8C=E5=BF=AB=E6=8D=B7?= =?UTF-8?q?=E9=94=AE=E6=B3=A8=E5=86=8C=E5=8A=9F=E8=83=BD=20=20=20=E2=9C=A8?= =?UTF-8?q?=20=E6=9B=B4=E6=96=B0(ui):=20=E5=88=9B=E5=BB=BA=E7=AA=97?= =?UTF-8?q?=E5=8F=A3=E5=87=BD=E6=95=B0=E7=8E=B0=E5=9C=A8=E8=BF=94=E5=9B=9E?= =?UTF-8?q?BrowserWindow=E5=AF=B9=E8=B1=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ui/autoMate/src/main/code/index.ts | 6 +++++- ui/autoMate/src/main/{ => code}/ipc.ts | 0 ui/autoMate/src/main/code/shortCut.ts | 19 +++++++++++++++++++ ui/autoMate/src/main/code/window.ts | 6 +++--- ui/autoMate/src/main/index.ts | 4 ++-- 5 files changed, 29 insertions(+), 6 deletions(-) rename ui/autoMate/src/main/{ => code}/ipc.ts (100%) create mode 100644 ui/autoMate/src/main/code/shortCut.ts diff --git a/ui/autoMate/src/main/code/index.ts b/ui/autoMate/src/main/code/index.ts index fd07076..4d9852d 100644 --- a/ui/autoMate/src/main/code/index.ts +++ b/ui/autoMate/src/main/code/index.ts @@ -1,9 +1,13 @@ import { app } from 'electron' import { createWindow } from './window' +import * as ipc from './ipc' +import { registerShortCut } from './shortcut' app.whenReady().then(() => { - createWindow() + const window = createWindow() + ipc.registerIpc(window) + registerShortCut(window) }) diff --git a/ui/autoMate/src/main/ipc.ts b/ui/autoMate/src/main/code/ipc.ts similarity index 100% rename from ui/autoMate/src/main/ipc.ts rename to ui/autoMate/src/main/code/ipc.ts diff --git a/ui/autoMate/src/main/code/shortCut.ts b/ui/autoMate/src/main/code/shortCut.ts new file mode 100644 index 0000000..a1b7a5a --- /dev/null +++ b/ui/autoMate/src/main/code/shortCut.ts @@ -0,0 +1,19 @@ +import { BrowserWindow } from "electron" + +const { app, globalShortcut } = require('electron') +export const registerShortCut = (win: BrowserWindow) => { +app.whenReady().then(() => { + // Register a 'CommandOrControl+X' shortcut listener. + const ret = globalShortcut.register('CommandOrControl+X', () => { + win.show() + }) + + if (!ret) { + console.log('registration failed') + } +}) + +app.on('will-quit', () => { + // Unregister all shortcuts. + globalShortcut.unregisterAll() +})} \ No newline at end of file diff --git a/ui/autoMate/src/main/code/window.ts b/ui/autoMate/src/main/code/window.ts index 270fd99..cc6f532 100644 --- a/ui/autoMate/src/main/code/window.ts +++ b/ui/autoMate/src/main/code/window.ts @@ -2,10 +2,9 @@ import { BrowserWindow, shell } from 'electron' import { is } from '@electron-toolkit/utils' import icon from '../../../resources/icon.png?asset' -import * as ipc from '../ipc' import { join } from 'path' -export function createWindow(): void { // Create the browser window. +export function createWindow(): BrowserWindow { // Create the browser window. const mainWindow = new BrowserWindow({ width: 600, height: 350, @@ -20,7 +19,6 @@ export function createWindow(): void { // Create the browser window. sandbox: false } }) - ipc.registerIpc(mainWindow) mainWindow.webContents.openDevTools() mainWindow.on('ready-to-show', () => { @@ -39,5 +37,7 @@ export function createWindow(): void { // Create the browser window. } else { mainWindow.loadFile(join(__dirname, '../renderer/index.html')) } + + return mainWindow } \ No newline at end of file diff --git a/ui/autoMate/src/main/index.ts b/ui/autoMate/src/main/index.ts index 0bd3493..15b18f7 100644 --- a/ui/autoMate/src/main/index.ts +++ b/ui/autoMate/src/main/index.ts @@ -1,11 +1,11 @@ import { app, BrowserWindow, ipcMain } from 'electron' import { electronApp, optimizer } from '@electron-toolkit/utils' -import { createWindow } from './code/window' - +import "./code" // This method will be called when Electron has finished // initialization and is ready to create browser windows. // Some APIs can only be used after this event occurs. app.whenReady().then(() => { + // Set app user model id for windows electronApp.setAppUserModelId('com.electron')