반응형
electron으로 만든 프로그램에 중복 실행 방지 코드를 넣어 봅시다.
공식 문서를 찾다보니 requestSingleInstanceLock이라는게 있습니다.
https://www.electronjs.org/docs/latest/api/app#apprequestsingleinstancelockadditionaldata
프로그램이 실행될 때 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
반응형
'ELECTRON' 카테고리의 다른 글
Electron과 React를 같이 사용해 보자 - 배포하기 (0) | 2024.07.05 |
---|---|
Electron과 React를 같이 사용해 보자. (Electron + React 연동) (0) | 2024.06.26 |
[electron] autoUpdater 사용 시 주의 사항. (0) | 2022.09.07 |
[electron] github private repo.를 사용하는 자동 업데이트. (0) | 2022.09.06 |
[electron] electron-builder를 사용할 때 vc_redist.exe 실행하기 (0) | 2022.08.05 |