main.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { app, BrowserWindow, ipcMain } from 'electron';
  2. import { exec } from 'child_process';
  3. import path from 'path';
  4. import { fileURLToPath } from 'url';
  5. const __filename = fileURLToPath(import.meta.url);
  6. const __dirname = path.dirname(__filename);
  7. function createWindow() {
  8. const win = new BrowserWindow({
  9. width: 800,
  10. height: 600,
  11. webPreferences: {
  12. preload: path.join(__dirname, 'preload.js'), // 确保路径正确
  13. contextIsolation: true,
  14. enableRemoteModule: false,
  15. nodeIntegration: false,
  16. }
  17. });
  18. win.webContents.openDevTools(); // 打开开发者工具进行调试
  19. win.loadURL('http://localhost:5173'); // 假设你的Vite开发服务器在3000端口运行
  20. console.log('Window created and URL loaded');
  21. }
  22. app.whenReady().then(createWindow);
  23. app.on('window-all-closed', () => {
  24. if (process.platform !== 'darwin') {
  25. app.quit();
  26. }
  27. });
  28. app.on('activate', () => {
  29. if (BrowserWindow.getAllWindows().length === 0) {
  30. createWindow();
  31. }
  32. });
  33. ipcMain.on('open-notepad', (event, arg) => {
  34. console.log('Received open-notepad event');
  35. exec('notepad.exe', (error, stdout, stderr) => {
  36. if (error) {
  37. console.error(`exec error: ${error}`);
  38. return;
  39. }
  40. console.log(`stdout: ${stdout}`);
  41. console.error(`stderr: ${stderr}`);
  42. });
  43. });