DEV/Frontend

Electron Browser Window 숨기는 방법

Beomsu Koh 2024. 1. 24.

Electron Browser Window 숨기는 방법

  • 방법 : mainWindow?.hide();, mainWindow?.show();
  • 목적
    • Electron 앱이 캡처 과정에 직접 개입하지 않도록 하여, 보다 정확한 화면 캡처를 가능하게 합니다. 😄
  1. 캡처 지연: 화면 캡처를 시작하기 전에 약간의 지연 시간(예: 1-2초)을 두어 Electron 앱 창을 최소화하거나 숨길 시간을 제공합니다. 이렇게 하면 desktopCapturer가 Electron 창을 제외한 나머지 화면을 캡처할 수 있습니다.

    ipcMain.on("capture-screen", async (event) => {
      // 창을 숨기거나 최소화
      mainWindow?.hide();
    
      // 약간의 지연 후 캡처
      setTimeout(() => {
        desktopCapturer
          .getSources({
            types: ["screen"],
            thumbnailSize: screen.getPrimaryDisplay().workAreaSize,
          })
          .then(async (sources) => {
            let image = sources[0].thumbnail.toDataURL();
            event.reply("screen-captured", image);
            // 캡처 후 창을 다시 보여줌
            mainWindow?.show();
          });
      }, 2000); // 2초 지연
    });
    
  2. 외부 트리거 사용: 사용자가 별도의 키보드 단축키나 시스템 트레이 아이콘을 사용하여 캡처를 트리거할 수 있도록 구현합니다.

    • 이 방법을 사용하면 사용자가 직접 Electron 앱을 최소화하고 캡처를 시작할 수 있습니다.

댓글