| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- const { app, BrowserWindow, Menu, ipcMain, globalShortcut } = require('electron');
- const path = require('path');
- const HID = require('node-hid');
- const devices = HID.devices();
- const logitech = devices.filter(el => el.manufacturer == 'Logitech');
- const data = new HID.HID(logitech[0].vendorId, logitech[0].productId);
- class MainSerivce {
- constructor() {
- Menu.setApplicationMenu(null) // 去掉菜单栏
- app.commandLine.appendSwitch('wm-window-animations-disabled') // 拖动闪屏
- this.loadingWin = null
- this.mainWin = null
- app.on('ready', this.onRead.bind(this))
- app.on('activate', this.createWindow.bind(this))
- app.on('window-all-closed',app.quit)
- }
- createLoading() {
- this.loadingWin = new BrowserWindow({
- frame: false, // 无边框(窗口、工具栏等),只包含网页内容
- width: 200,
- height: 200,
- resizable: false,
- center: true,
- alwaysOnTop: true,
- transparent: true // 窗口是否支持透明,如果想做高级效果最好为true
- })
- this.loadingWin.loadFile('loading.html')
- this.loadingWin.on('close', () => {
- this.loadingWin = null
- })
- }
- createWindow() {
- if (!this.mainWin) {
- this.mainWin = new BrowserWindow({
- minWidth: 1300,
- minHeight: 760,
- width: 1300,
- height: 760,
- frame: false,
- transparent: true,
- webPreferences: {
- contextIsolation: true,
- nodeIntegration: true,
- webSecurity: false, // 去掉跨越
- nodeIntegrationInWorker: true,
- preload: path.join(__dirname, './preload.js')
- },
- show: false
- })// 创建一个窗口
- // 不同环境加载不同文件
- if (app.isPackaged) {
- this.mainWin.loadFile('dist/index.html')
- } else {
- this.mainWin.loadURL('http://localhost:6547/')
- }
- // 事件监听
- this.mainWin.on('close', () => {this.mainWin = null})
- }
- }
- onRead() {
- this.createLoading()
- this.createWindow()
- // 注册调试模式
- globalShortcut.register('Control+F12', () => {
- // win.flashFrame(true)
- this.mainWin.webContents.toggleDevTools()
- })
- ipcMain.once('close-loading', () => {
- this.loadingWin.close()
- this.mainWin.show()
- })
- data.on('data', (db) => {
- if(this.mainWin.isEnabled()) this.mainWin?.webContents.send('contrlData',db)
- })
- }
- };
- new MainSerivce()
|