38 lines
		
	
	
	
		
			852 B
			
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
	
		
			852 B
			
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const { app, BrowserWindow } = require('electron/main')
 | |
| const fs = require('node:fs')
 | |
| const path = require('node:path')
 | |
| 
 | |
| app.disableHardwareAcceleration()
 | |
| 
 | |
| function createWindow () {
 | |
|   const win = new BrowserWindow({
 | |
|     width: 800,
 | |
|     height: 600,
 | |
|     webPreferences: {
 | |
|       offscreen: true
 | |
|     }
 | |
|   })
 | |
| 
 | |
|   win.loadURL('https://github.com')
 | |
|   win.webContents.on('paint', (event, dirty, image) => {
 | |
|     fs.writeFileSync('ex.png', image.toPNG())
 | |
|   })
 | |
|   win.webContents.setFrameRate(60)
 | |
|   console.log(`The screenshot has been successfully saved to ${path.join(process.cwd(), 'ex.png')}`)
 | |
| }
 | |
| 
 | |
| app.whenReady().then(() => {
 | |
|   createWindow()
 | |
| 
 | |
|   app.on('activate', () => {
 | |
|     if (BrowserWindow.getAllWindows().length === 0) {
 | |
|       createWindow()
 | |
|     }
 | |
|   })
 | |
| })
 | |
| 
 | |
| app.on('window-all-closed', () => {
 | |
|   if (process.platform !== 'darwin') {
 | |
|     app.quit()
 | |
|   }
 | |
| })
 | 
