electron launcher
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
2.0 KiB

4 years ago
3 years ago
4 years ago
  1. const { BrowserWindow } = require('electron')
  2. const { createWindow } = require('./lib/common')
  3. const { SUSPENSION_WINDOW_URL, SUSPENSION_WINDOW_FLAG } = require("../constant")
  4. const store = require('./lib/store')
  5. const create = () => {
  6. const windows = BrowserWindow.getAllWindows()
  7. let win = windows.find((window) => {
  8. return window[SUSPENSION_WINDOW_FLAG]
  9. });
  10. if (win) {
  11. win.show();
  12. return win;
  13. }
  14. let areaSize = require('electron').screen.getPrimaryDisplay().workAreaSize
  15. win = createWindow(SUSPENSION_WINDOW_URL, {
  16. // width: 500,
  17. // height: 400,
  18. // alwaysOnTop: true,
  19. // // modal: true,
  20. // // parent: event.sender,
  21. // minimizable: false,
  22. // fullscreenable: false,
  23. // maximizable: false,
  24. // resizable: false,
  25. // focusable: true
  26. width: 310, //悬浮窗口的宽度 比实际DIV的宽度要多2px 因为有1px的边框
  27. height: 130, //悬浮窗口的高度 比实际DIV的高度要多2px 因为有1px的边框
  28. // width: 500,
  29. // height: 500,
  30. type: 'toolbar', //创建的窗口类型为工具栏窗口
  31. frame: false, //要创建无边框窗口
  32. resizable: false, //禁止窗口大小缩放
  33. show: true, //先不让窗口显示
  34. transparent: true, //设置透明
  35. alwaysOnTop: true, //窗口是否总是显示在其他窗口之前
  36. },true)
  37. // const size = screen.getPrimaryDisplay().workAreaSize; //获取显示器的宽高
  38. const winSize = win.getSize(); //获取窗口宽高
  39. // //设置窗口的位置 注意x轴要桌面的宽度 - 窗口的宽度
  40. const pos = store.get("position");
  41. if(pos){
  42. console.log('aaaaaaaaaa',pos);
  43. win.setPosition(pos.x, pos.y);
  44. }else{
  45. win.setPosition(areaSize.width - winSize[0] - 50, areaSize.height - winSize[1] - 50);
  46. }
  47. win[SUSPENSION_WINDOW_FLAG] = true;
  48. return create();
  49. }
  50. module.exports = { create }