// Capture visible viewport static captureViewport() { return this.captureElement(document.body); } } class ScreenshotSaver { static saveAsFile(screenshot, filename = `screenshot_${Date.now()}.png`) { const link = document.createElement('a'); link.download = filename; link.href = screenshot.dataUrl; link.click(); } static async saveToClipboard(screenshot) { try { await navigator.clipboard.write([ new ClipboardItem({ [screenshot.blob.type]: screenshot.blob }) ]); return true; } catch (error) { console.error('Failed to copy to clipboard:', error); return false; } }
.screenshot-btn:hover { background: #45a049; transform: translateY(-2px); } print screen command
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js"></script> <script> const printScreen = new PrintScreenFeature(); link.download = filename
1. Basic Print Screen - Captures Entire Screen class PrintScreenFeature { constructor() { this.canvas = null; this.stream = null; } // Capture entire screen async captureFullScreen() { try { const stream = await navigator.mediaDevices.getDisplayMedia({ video: { mediaSource: "screen", width: { ideal: 1920 }, height: { ideal: 1080 } }, audio: false }); this.stream = stream; const videoTrack = stream.getVideoTracks()[0]; // Create video element to capture frame const video = document.createElement('video'); video.srcObject = stream; await video.play(); // Capture frame const screenshot = await this.captureFrame(video); // Stop the stream videoTrack.stop(); stream.getTracks().forEach(track => track.stop()); return screenshot; } catch (error) { console.error('Error capturing screen:', error); throw error; } } link.href = screenshot.dataUrl
export default PrintScreenComponent; // Main process (main.js) const { app, BrowserWindow, globalShortcut, clipboard, nativeImage } = require('electron'); const screenshot = require('screenshot-desktop'); app.whenReady().then(() => { // Register global shortcut (Print Screen key) globalShortcut.register('PrintScreen', async () => { try { // Capture screen const imgBuffer = await screenshot();