chenyc
2022-08-26 94f16f6a5770c10fce8267e9e851dfc35d8dfbc2
electron/main/index.ts
@@ -1,4 +1,4 @@
import { app, BrowserWindow, shell, ipcMain } from 'electron'
import { app, BrowserWindow, shell, ipcMain,Menu } from 'electron'
import { release } from 'os'
import { join } from 'path'
import fs from 'fs'
@@ -8,6 +8,7 @@
const Store = require('electron-store');
const  store = new Store();
console.log(store.path)
// 读
// console.log(store.get('clientCode'))
// console.log(store.get('deviceList'))
@@ -35,13 +36,14 @@
async function createWindow() {
  win = new BrowserWindow({
    title: 'Main window',
    fullscreen: true,
    // autoHideMenuBar:true,
    webPreferences: {
      preload: splash,
      nodeIntegration: true,
      contextIsolation: false,
    },
  })
  if (app.isPackaged) {
    win.loadFile(join(__dirname, '../../index.html'))
  } else {
@@ -51,8 +53,10 @@
  // Test active push message to Renderer-process
  // 测试推送消息到Renderer进程
  win.webContents.on('did-finish-load', () => {
    win?.webContents.send('main-process-message', new Date().toLocaleString())
    win?.webContents.send('getConfigData',store.get('clientCode'),store.get('deviceList'),store.path)
    // win?.webContents.send('main-process-message', new Date().toLocaleString())
    win?.webContents.send('getScreenTimeout',store.get('screenTimeout'))
    win?.webContents.send('getPcName',store.get('machineName'))
    win?.webContents.send('getConfigData',store.get('clientCode'),store.get('devices'),store.path)
  })
  // Make all links open with the browser, not with the application
@@ -62,7 +66,6 @@
    return { action: 'deny' }
  })
}
app.whenReady().then(createWindow)
app.on('window-all-closed', () => {
@@ -108,8 +111,25 @@
ipcMain.on("main-process-message2",()=>{
  console.log("33344")
})
// 渲染端发送消息到主进程
ipcMain.on('synchronous-message', (event, arg) => {
  console.log(arg) // 在 Node 控制台中打印“ping”
  event.returnValue = store.get('clientCode')
// 渲染端发送消息到主进程修改confing文件
ipcMain.on('setConfingData', (event, arg) => {
  const mode1=store.store
  const mode2={
    "clientCode": arg.clientCode,
    "machineName": arg.machineName,
    "screenTimeout": arg.screenTimeout,
    "devices":arg.devices
  }
  //对比两端配置文件
  if(JSON.stringify(mode1)!=JSON.stringify(mode2)){
    //更新cofing.json
    console.log('update confing.json')
    store.set(mode2)
    // 重新建立sockte 通讯
    win?.webContents.send('getScreenTimeout',store.get('screenTimeout'))
    win?.webContents.send('getPcName',store.get('machineName'))
    win?.webContents.send('getConfigData',store.get('clientCode'),store.get('devices'),store.path)
  }
})