update
This commit is contained in:
113
APP/nexus-remote/main.js
Normal file
113
APP/nexus-remote/main.js
Normal file
@@ -0,0 +1,113 @@
|
||||
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);
|
||||
});
|
||||
Reference in New Issue
Block a user