본문 바로가기

ELECTRON

electron 으로 만든 프로그램에 중복 실행 방지 코드 넣기!

반응형

electron으로 만든 프로그램에 중복 실행 방지 코드를 넣어 봅시다.

 

공식 문서를 찾다보니 requestSingleInstanceLock이라는게 있습니다.

 

https://www.electronjs.org/docs/latest/api/app#apprequestsingleinstancelockadditionaldata

 

app | Electron

Control your application's event lifecycle.

www.electronjs.org

 

 

 

프로그램이 실행될 때 lock을 얻을 수 있는지 확인해 주는 함수라고 합니다!

 

이미 실행되고 있는 같은 프로그램 인스턴스가 있으면 false를 반환합니다.

 

제공되는 예제는 다음과 같습니다.

 

const { app, BrowserWindow } = require('electron')
let myWindow = null

const additionalData = { myKey: 'myValue' }
const gotTheLock = app.requestSingleInstanceLock(additionalData)

if (!gotTheLock) {
  app.quit()
} else {
  app.on('second-instance', (event, commandLine, workingDirectory, additionalData) => {
    // Print out data received from the second instance.
    console.log(additionalData)

    // Someone tried to run a second instance, we should focus our window.
    if (myWindow) {
      if (myWindow.isMinimized()) myWindow.restore()
      myWindow.focus()
    }
  })

  app.whenReady().then(() => {
    myWindow = new BrowserWindow({})
    myWindow.loadURL('https://electronjs.org')
  })
}

 

 

예제가 아주 간단 명료합니다.

 

 

'second-instance' 이벤트를 사용해서 두 번째 인스턴스가 실행될 때 어떻게 처리할 지도 정의할 수 있습니다.

 

 

https://www.electronjs.org/docs/latest/api/app#event-second-instance

 

app | Electron

Control your application's event lifecycle.

www.electronjs.org

 

 

반응형