Electron Browser Window 숨기는 방법
- 방법 :
mainWindow?.hide();
,mainWindow?.show();
- 목적
- Electron 앱이 캡처 과정에 직접 개입하지 않도록 하여, 보다 정확한 화면 캡처를 가능하게 합니다. 😄
-
캡처 지연: 화면 캡처를 시작하기 전에 약간의 지연 시간(예: 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초 지연 });
-
외부 트리거 사용: 사용자가 별도의 키보드 단축키나 시스템 트레이 아이콘을 사용하여 캡처를 트리거할 수 있도록 구현합니다.
- 이 방법을 사용하면 사용자가 직접 Electron 앱을 최소화하고 캡처를 시작할 수 있습니다.
728x90
'DEV > Frontend' 카테고리의 다른 글
Invariant failed You should not use <Route> outside a <Router> (0) | 2024.02.04 |
---|---|
React 프로젝트가 로딩 되기 전에 Electron이 구동 되어 버릴 때 해결 방법 (0) | 2024.01.26 |
Electron 개발환경에서 캡처가 되지 않았던 이유 (0) | 2024.01.24 |
Base64 (0) | 2023.05.13 |
React Rout로 Login Redirect 하는 방법 (0) | 2023.02.15 |