设置窗口优先级
// 将窗口设置为始终置顶
mainWindow.setAlwaysOnTop(true);
或者
const mainWindow = new BrowserWindow({
width: 800,
height: 600,
minimizable: false, // 添加这一行来禁止最小化
alwaysOnTop: true, // 添加这一行来设置窗口始终置顶
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
contextIsolation: true, // 确保这个是 true
nodeIntegration: false // 确保这个是 false
}
})
input输入框,始终获得焦点
在窗口激活的时候,设置input 获得焦点
// renderer.js
// 当窗口获得焦点时,设置 input 焦点
window.addEventListener('focus', () => {
console.log('Window focus 事件触发'); // 确认事件是否触发
if (myInput) {
console.log('尝试在 window focus 时设置焦点');
setTimeout(() => {
myInput.focus();
}, 10);
// myInput.focus();
} else {
console.error('在 window focus 时未找到 myInput 元素');
}
});
// 当 input 失去焦点时,如果窗口仍激活,则重新聚焦
if (myInput) {
myInput.addEventListener('blur', () => {
console.log('myInput blur 事件触发');
// 检查窗口是否仍然是激活状态
if (document.hasFocus()) {
console.log('窗口仍激活,尝试重新聚焦 myInput');
// 使用 setTimeout 避免可能的无限循环或冲突
setTimeout(() => {
// 再次检查元素状态
myInput.focus();
}, 0); // 使用 0ms 延迟
} else {
console.log('窗口已失去焦点,不重新聚焦 myInput');
}
});
}
设置应用自启动
const { app } = require('electron')
// 设置开机自启动
const setAutoLaunch = () => {
app.setLoginItemSettings({
openAtLogin: true, // 启用开机自启动
path: process.execPath, // 应用程序的可执行文件路径
args: ['--autostart'], // 启动时的命令行参数
enabled: true, // 启用此登录项
name: 'my-electron-app', // 应用名称
openAsHidden: true, // 启动时隐藏窗口
})
}
app.on('ready', () => {
// 设置开机自启动
setAutoLaunch()
})