3 Star 0 Fork 1

julien/electron-polyv

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
main.js 4.78 KB
一键复制 编辑 原始数据 按行查看 历史
console.log(`start main `)
// import('D:/electron/electron-quick-start-master/dist/js/capture.js')
// require('D:/electron/electron-quick-start-master/dist/js/capture.js')
// Modules to control application life and create native browser window
const { app, BrowserWindow } = require('electron')
const { globalShortcut, Tray, Menu, ipcMain } = require('electron') // 识别文字使用的
const path = require('path')
const shell = require('electron').shell;
let win
// let srcPath = path.join(__dirname, "../src")
let clip = true
function createTray() { // 创建系统托盘图标的函数
// tray = new Tray(`D:/electron/electron-quick-start-master/dist/img/font.png`) // 指定图片的路径
tray = new Tray(`D:/electron/electron-quick-start-master/dist/img/intro-pic.png`) // 指定图片的路径
const contextMenu = Menu.buildFromTemplate([
{
label: 'clip', type: 'checkbox', click() {
clip = !clip
}, checked: true
},
{
label: 'about', click() {
//打开默认浏览器
shell.openExternal('https://julien0220.github.io/lhj-notes/');
}
},
{
label: 'exit', click() {
app.quit()
}
}
])
tray.setToolTip('不开心就来soul')
tray.setContextMenu(contextMenu)
//注册快捷键
globalShortcut.register('CmdOrCtrl+Shift+V', captureScreen)
globalShortcut.register('Esc', () => {
if (win) {
win.close()
win = null
}
})
}
function createCaptureWindow() {
// 创建浏览器窗口,只允许创建一个
if (win) return console.info('only one CaptureWindow allowed!!!!')
const { screen } = require('electron') //因为ready才可以引入
let { width, height } = screen.getPrimaryDisplay().bounds
win = new BrowserWindow({
// window 使用 fullscreen, mac 设置为 undefined, 不可为 false
fullscreen: process.platform !== 'darwin' || undefined, // win
width,
height,
x: 0,
y: 0,
transparent: true,
frame: false,
skipTaskbar: true,
autoHideMenuBar: true,
movable: false,
resizable: false,
enableLargerThanScreen: true, // mac
hasShadow: false,
webPreferences: {
webSecurity: false //可以加载本地文件
}
})
// win.setAlwaysOnTop(true, 'screen-saver') // mac
// win.setVisibleOnAllWorkspaces(true) // mac
// win.setFullScreenable(false) // mac
// 然后加载应用的 index.html。
win.loadFile('D:/electron/electron-quick-start-master/x.html')
// 打开开发者工具
// win.webContents.openDevTools()
// 当 window 被关闭,这个事件会被触发。
win.on('closed', () => {
// 取消引用 window 对象,如果你的应用支持多窗口的话,
// 通常会把多个 window 对象存放在一个数组里面,
// 与此同时,你应该删除相应的元素。
win = null
})
}
//
function captureScreen() { // 如果clip为真就创建一个浏览器窗口
if (clip) {
createCaptureWindow()
}
}
ipcMain.on('clip-page', (event, { type, msg }) => {
if (type === 'close') {
if (win) {
win.close()
win = null
}
}
})
//
/*
*
*
*
*
*
*
*
*
*下面就是主进程运行了
*/
function createWindow() {
// Create the browser window.
const mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
preload: path.join(__dirname, 'preload.js')
}
})
// and load the index.html of the app.
// mainWindow.loadFile('index.html')
mainWindow.loadFile('D:/electron/electron-quick-start-master/dist/index.html')
// Open the DevTools.
// mainWindow.webContents.openDevTools()
}
//
// app.on('ready', createTray)
//
// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
app.whenReady().then(() => {
createWindow()
createTray()
// app.on('ready', async () => {
// globalShortcut.register('CommandOrControl+Shift+i', function () {
// win.webContents.openDevTools()
// })
// createWindow();
// })
app.on('activate', function () {
// On macOS it's common to re-create a window in the app when the
// dock icon is clicked and there are no other windows open.
// if (win === null) {
// createCaptureWindow()
// }
if (BrowserWindow.getAllWindows().length === 0) createWindow()
if (win === null) {
createCaptureWindow()
}
})
})
// Quit when all windows are closed, except on macOS. There, it's common
// for applications and their menu bar to stay active until the user quits
// explicitly with Cmd + Q.
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') app.quit()
})
// In this file you can include the rest of your app's specific main process
// code. You can also put them in separate files and require them here.
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/LHdensity/electron-polyv.git
git@gitee.com:LHdensity/electron-polyv.git
LHdensity
electron-polyv
electron-polyv
master

搜索帮助

23e8dbc6 1850385 7e0993f3 1850385