const electron = require('electron'); const { app, BrowserWindow, desktopCapturer } = electron; const ipcMain = electron.ipcMain; const Menu = electron.Menu; const globalShortcut = electron.globalShortcut; const path = require('path'); const os = require('os'); const fs = require('fs'); let mainWindow; let hardKillTriggered = false; app.whenReady().then(() => { Menu.setApplicationMenu(null); mainWindow = new BrowserWindow({ width: 1300, height: 820, minWidth: 800, minHeight: 500, title: 'Nexus AzA Remote', backgroundColor: '#0a0a0a', webPreferences: { nodeIntegration: true, contextIsolation: false, }, }); mainWindow.loadFile('index.html'); ipcMain.handle('get-sources', async () => { const sources = await desktopCapturer.getSources({ types: ['screen'], thumbnailSize: { width: 1, height: 1 }, }); return sources.map((s) => ({ id: s.id, name: s.name })); }); ipcMain.handle('save-credentials', async (_e, id, key) => { const desktop = path.join(os.homedir(), 'Desktop'); const filePath = path.join(desktop, 'Nexus_AzA_Zugangsdaten.txt'); const content = `----------------------------------------- NEXUS AzA REMOTE - DEINE ZUGANGSDATEN ----------------------------------------- Deine ID: ${id} Sicherheits-Key: ${key} SO VERBINDEST DU DICH: 1. Oeffne Nexus Remote auf dem anderen PC 2. Gib die obige ID als "Remote ID" ein 3. Gib den obigen Key als "Remote Key" ein 4. Klicke "Verbinden" 5. Die Verbindung wird gespeichert! Beim naechsten Mal einfach "Verbinden" klicken – ID und Key sind gespeichert. SICHERHEIT: - Gib diese Daten nur an Personen weiter, denen du vertraust. - ESC = Verbindung trennen - Ctrl+Alt+K = sofortiger Notaus -----------------------------------------`; try { fs.writeFileSync(filePath, content, 'utf-8'); } catch {} return filePath; }); ipcMain.on('set-always-on-top', (_e, val) => { if (mainWindow && !mainWindow.isDestroyed()) { mainWindow.setAlwaysOnTop(val); } }); ipcMain.on('cleanup-done', () => { globalShortcut.unregisterAll(); app.exit(0); }); globalShortcut.register('CommandOrControl+Alt+K', () => { hardKillTriggered = true; if (mainWindow && !mainWindow.isDestroyed()) { mainWindow.webContents.send('hard-kill'); setTimeout(() => { globalShortcut.unregisterAll(); app.exit(0); }, 1200); } else { globalShortcut.unregisterAll(); app.exit(0); } }); globalShortcut.register('Escape', () => { if (mainWindow && !mainWindow.isDestroyed()) { mainWindow.webContents.send('kill-switch'); } }); mainWindow.on('close', () => { if (!mainWindow.isDestroyed()) { mainWindow.webContents.send('hard-kill'); } }); }); app.on('will-quit', () => { globalShortcut.unregisterAll(); }); app.on('window-all-closed', () => { globalShortcut.unregisterAll(); app.exit(0); });