Files
AVM-Stealer-2026/gui/main.js
T
2026-08-27 10:50:08 -06:00

67 lines
1.6 KiB
JavaScript

const { app, BrowserWindow, ipcMain } = require('electron');
const path = require('path');
const fs = require('fs');
const { exec } = require('child_process');
function createWindow() {
const mainWindow = new BrowserWindow({
width: 1100,
height: 600,
icon: path.join(__dirname, 'src/style/img/icon.ico'),
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
},
backgroundColor: '#0b0d17'
});
mainWindow.loadFile(path.join(__dirname, 'src/index.html'));
mainWindow.setMenuBarVisibility(false);
}
app.on('ready', createWindow);
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit();
}
});
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow();
}
});
ipcMain.handle('save-info', async (event, data) => {
const filePath = path.join(app.getPath('userData'), 'settings.json');
try {
fs.writeFileSync(filePath, JSON.stringify(data, null, 2), 'utf-8');
return filePath;
} catch (error) {
throw new Error('Failed to save information: ' + error.message);
}
});
ipcMain.handle('get-info', async () => {
const filePath = path.join(app.getPath('userData'), 'settings.json');
try {
if (fs.existsSync(filePath)) {
const data = fs.readFileSync(filePath, 'utf-8');
return JSON.parse(data);
}
return null;
} catch (error) {
console.error('Failed to load information:', error);
return null;
}
});
ipcMain.handle('open-file-dialog', async (event, options) => {
const { dialog } = require('electron');
return await dialog.showOpenDialog(options);
});