electron.service.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { Injectable } from '@angular/core'
  2. import { App, IpcRenderer, Shell, Dialog, Clipboard, GlobalShortcut, Screen, Remote, AutoUpdater, TouchBar, BrowserWindow, Menu, MenuItem, NativeImage } from 'electron'
  3. import * as remote from '@electron/remote'
  4. export interface MessageBoxResponse {
  5. response: number
  6. checkboxChecked?: boolean
  7. }
  8. @Injectable({ providedIn: 'root' })
  9. export class ElectronService {
  10. app: App
  11. ipcRenderer: IpcRenderer
  12. shell: Shell
  13. dialog: Dialog
  14. clipboard: Clipboard
  15. globalShortcut: GlobalShortcut
  16. nativeImage: typeof NativeImage
  17. screen: Screen
  18. remote: Remote
  19. process: any
  20. autoUpdater: AutoUpdater
  21. TouchBar: typeof TouchBar
  22. BrowserWindow: typeof BrowserWindow
  23. Menu: typeof Menu
  24. MenuItem: typeof MenuItem
  25. /** @hidden */
  26. private constructor () {
  27. const electron = require('electron')
  28. this.shell = electron.shell
  29. this.clipboard = electron.clipboard
  30. this.ipcRenderer = electron.ipcRenderer
  31. this.process = remote.getGlobal('process')
  32. this.app = remote.app
  33. this.screen = remote.screen
  34. this.dialog = remote.dialog
  35. this.globalShortcut = remote.globalShortcut
  36. this.nativeImage = remote.nativeImage
  37. this.autoUpdater = remote.autoUpdater
  38. this.TouchBar = remote.TouchBar
  39. this.BrowserWindow = remote.BrowserWindow
  40. this.Menu = remote.Menu
  41. this.MenuItem = remote.MenuItem
  42. }
  43. }