嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Linux——不需要本地开发...调用系统API实现文件保存或读取前的选择功能: 如上图所示的功能,我们在使用电脑时就经常会遇到,在Electron中我们可以通过调用dialog.showOpenDialogSync函数同步打开下面的对话框...properties openFile 允许选择文件 openDirectory 允许选择文件夹 multiSelections 允许多选 showHiddenFiles 显示对话框中的隐藏文件...菜单栏菜单: Electron提供的默认菜单栏中的菜单都是一些为了演示和开发使用的,在实际的应用中我们还是需要进行配置来实现我们自己的功能。...菜单栏自动隐藏,应用启动后默认隐藏,当按下ALT件后显示原菜单栏: const win = new BrowserWindow({ autoHideMenuBar: true, }) 通过Electron
关于MrKaplan MrKaplan是一款功能强大的红队安全研究工具,该工具可以帮助广大红队研究人员清理和隐藏活动中的代码执行痕迹。
我们知道,在Python中,可以设定窗口的大小: driver.set_window_size(1920, 1080) 那么如果我并不想修改窗口大小,只想修改页面大小怎么办?...document.body.style.zoom='0.5' 代码中的 0.5表示缩放比例。 1是原大小,小于1是缩小,大于1是放大。例如0.5表示缩小为原网页的50%。...如果直接在Chrome的开发者工具中运行,缩小的效果如下图所示: 放大的效果如下图所示。...因此,在Selenium中,可以使用 execute_script来运行: driver.execute_script("document.body.style.zoom='0.5'") #缩小 driver.execute_script
渲染进程中如何使用NodeJS api 需要在 vue.config.js 中配置 nodeIntegration 为 true module.exports = { pluginOptions:...如何监听窗口的状态, 最小化, 聚焦, 窗口隐藏, 窗口显示, 窗口关闭 // 窗口最小化触发 win.on('minimize', () => { console.log('最小化') }) win.on...('focus', () => { console.log('聚焦') }) // 窗口隐藏, 任务栏没有图标 win.on('hide', () => { console.log('隐藏')...打包配置文件(installer.nsh)中添加配置 在安装的时候在注册表注册URL protocol ?...image.png 若提前开启, 则在判断单例的条件判断中获取 ? image.png 13.
当该窗口关闭时,应用程序退出。虽然这种行为完全可以接受,但我们通常希望能够打开多个独立的窗口。在本章中,我们将Fire Sale从一个单窗口应用程序转换为一个支持多个窗口的应用程序。...如果它们仍然是未定义的(例如,没有焦点窗口),那么Electron将使用缺省值,就像我们实现此功能之前所做的那样。图5.4显示了与第一个窗口相比的第二个窗口偏移量。 ?...我们只有一个窗口,无法创建其他窗口。在本节中,我们只允许应用程序在macOS中保持打开状态。默认情况下,当Electron触发它的window-all-closed事件时,它将退出应用程序。...另一种可能性是,您的应用程序可以隐藏,或者使用全局快捷方式显示,或者从托盘或菜单栏中显示。我们将在后面的章节中实现这些。...通过这两个额外的事件,我们将Fire Sale从单窗口应用程序转换为支持多窗口的应用。这个清单显示了主进程当前状态的代码。 列表5.13 在主进程中实现多个窗口: .
关于mimic mimic是一款针对进程隐藏的安全工具,在该工具的帮助下,广大研究人员可以通过普通用户身份来在Linux操作系统(x86_64)上隐藏某个进程的执行。...使用的是一种名为“Covert execution”的技术,这种技术是一种隐藏进程的方式。在这种情况下,mimic会将进程隐藏起来,mimic可以启动任何程序,并使其看起来像任何其他程序。...0t0 TCP *:31337 (LISTEN) apache2 1931 empty 4u IPv4 14463 0t0 TCP *:31337 (LISTEN) 第二个例子...这将允许我们选择进程列表中我们所希望进程出现的位置。需要注意的是,内核为内核线程保留了前300个pid。如果你试图低于这个值,你可能最终会得到进程pid 301。
背景说明: 窗口指的就是我们在电脑端经常使用的软件时候显示Logo,标题和操作最小化,最大化,关闭按钮的标题栏及标题栏下面显示内容的整个窗口,这往往在Web前端中接触的不是那么多,但要开发一款体验不错的...,如下图: 在Vue的App.vue中通过html标签来绘制我们的标题栏,绘制后的结果如下图所示: 为标题栏的按钮增加事件: 按钮事件和调用函数的定义均与Vue一致,我们需要考虑的是如何与...Electron联通来调用对应的API: 调整窗口对象中的如下所示属性,切记启用remote: 在App.vue中导入electron对象: const { remote } = window.require...('electron') 对应的操作API调用: 当窗口最大化后如何缩小: 监听窗口的变化来动态切换isMaxSize的值来动态渲染最大化后的按钮,主要通过窗口对象来监听maximize,unmaximize...,我们可以用来记录窗口信息: 恢复窗口信息的代码如下: 当我们修改主进程的代码并服务自动重启后你会发现窗口会先回到居中的位置再移动到保存的窗口状态的位置,我们需要在主进程关闭展示窗口,并由我们在渲染进程中控制
一、快捷键方式: 1、左键单击 ==》 在当前窗口中打开目标网页。 2、Shift + 左键单击 ==》 在新窗口中打开目标网页。 ...3、Ctrl + 左键单击 ==》 在新标签页中打开目标网页。 4、鼠标中键点击书签即打开新的标签页,在新的标签页中显示指定的网页。
唯一客服系统PC客户端,利用Electron打包实现 可以避免浏览器被误关闭,支持缩小在右下角系统托盘中,支持通知栏和声音访客新消息提醒 一个Electron应用程序的package.json文件。...BrowserWindow({ width: 1366, height: 768, //fullscreen: true, // 添加此行以使窗口默认全屏 frame:...minimizable: true, // 添加此行以启用最小化 closable: true, // 将此行更改为false以禁用关闭 // show: false // 添加此行以最初隐藏窗口...}) win.loadURL('https://gofly.v1kf.com/main') //隐藏顶部菜单 win.setMenu(null); //托盘图标 let tray...event.preventDefault() win.hide() //显示托盘提示 tray.displayBalloon({ title:"客服系统", content:"已隐藏在托盘处
Electron .npmrc 安装electron依赖经常会不成功 在项目目录下创建.npmrc文件,设置镜像地址 npm config set strict-ssl false registry...热加载 方案一 安装:npm install electron-reloader --save-dev 在主进程 js 文件 try { require("electron-reloader")(module...在 Electron 中,借助 Tray 模块实现。 //app 模块,控制整个应用程序的事件生命周期。 //BrowserWindow 模块,它创建和管理程序的窗口。.../src/img/logo.png"); //应用运行时的标题栏图标 let mainWindow, tray; //在 Electron 中,只有在 app 模块的 ready 事件被激发后才能创建浏览器窗口...("Tasky"); //鼠标移到托盘中应用程序的图标上时,显示的文本 tray.on("click", () => { //点击图标的响应事件,这里是切换主窗口的显示和隐藏 if
这样我们就可以在浏览器中通过一个 标签简单地唤起应用了。 <a href="myapp://openapp?...const { app } = require('<em>electron</em>'); // 获取<em>单</em>实例锁 const gotTheLock = app.requestSingleInstanceLock(); if...需要注意的是,<em>在</em>开发阶段,我们是通过 <em>electron</em> ....根据这个帖子,我们可以<em>在</em>预定义的参数最后加一个 -- ,来阻止其他参数直接被 <em>Electron</em> 处理。...获取参数 <em>第二个</em>实例运行的时候,自己就退出了,那么第一个实例<em>如何</em>能获取到启动<em>第二个</em>实例的参数呢?这里 macOS 和 Windows 上的行为是不一致的,需要分别处理。
为了简化和清晰,在我们继续熟悉Electron时,我们在app/main.js中保存了主进程的所有代码,在app/renderer.js中保存了单渲染器进程的所有代码。...在index.html,我们添加清单3.3中的标记来创建图3.5中的浏览器窗口。 ? 图3.5 开始我们第一个未样式化的Electron应用 列表3.3 我们应用的标记:....用户不习惯在本地应用程序中看到这种情况,我们可以通过重新思考如何启动窗口来避免这种情况。 如果您认为应用程序第一次启动时的虚无闪光是无意义的,考虑主进程中的代码:它创建一个窗口,然后在其中加载内容。...如果我们隐藏窗口直到内容被加载呢?然后,当UI准备好时,我们显示窗口,并避免短暂地暴露一个空窗口。...Electron的默认应用程序菜单提供了一个命令来打开应用程序中的Chrome开发工具。在第6章中,我们将学习如何创建我们自己的自定义菜单,并在您不希望将其公开给用户的情况下消除此功能。
♣ 题目部分 在Oracle中,如何将RAC软件转换为单实例软件?...♣ 答案部分 在RAC环境中,只有在集群正常启动的情况下才能创建和启动单实例的数据库,否则报错: [oracle@raclhr-11gR2-N1 ~]$ sqlplus / as sysdba SQL...启动数据库 需要注意的是,在执行编译后,集群仍然能正常启动,但是集群中的RAC数据库不能正常启动,会报错: SYS@lhrrac11> startup ORA-01078: failure in processing...ORACLE_HOME/rdbms/lib $ make -f ins_rdbms.mk rac_on $ make -f ins_rdbms.mk ioracle & 说明: 有关RAC软件转换为单实例软件的更多内容可以参考我的
为了简化和清晰,在我们继续熟悉Electron时,我们在app/main.js中保存了主进程的所有代码,在app/renderer.js中保存了单渲染器进程的所有代码。...优雅地显示浏览器窗口 如果你仔细观察你的应用程序的启动,您将注意到,在Electron加载index.html并在窗口中呈现DOM之前,窗口完全为空。...用户不习惯在本地应用程序中看到这种情况,我们可以通过重新思考如何启动窗口来避免这种情况。 如果您认为应用程序第一次启动时的虚无闪光是无意义的,考虑主进程中的代码:它创建一个窗口,然后在其中加载内容。...如果我们隐藏窗口直到内容被加载呢?然后,当UI准备好时,我们显示窗口,并避免短暂地暴露一个空窗口。...Electron的默认应用程序菜单提供了一个命令来打开应用程序中的Chrome开发工具。在第6章中,我们将学习如何创建我们自己的自定义菜单,并在您不希望将其公开给用户的情况下消除此功能。
当然这篇文章不会介绍如何从零使用 electron , 而是会提供一种方案, 帮助大家快速的将线上网站转化为 electron 应用....Electron在架构上非常类似于一个现代的网页浏览器。...每个 Electron 应用都有一个单一的主进程,作为应用程序入口。主进程在 Node 环境中运行,我们可以使用所有 Node 的能力。 那么主进程中我们可以做些什么呢?...主进程的主要目的是使用 BrowserWindow 模块创建和管理应用程序窗口。 BrowserWindow 类的每个实例创建一个应用程序窗口,且在单独的渲染器进程中加载一个网页。...实现将线上网站打包成桌面端软件 我们知道如果想要加载第三方网络资源, 可以使用 mainWindow.loadURL(url) 来实现, 所以只需要将网址放到 loadURL 方法中让 electron
嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Linux——不需要本地开发...这样的功能是如何实现的呢?我们一起来走进Electron Url 远程启动。...客户端操作时:在浏览器打开: 第一步:在preload中定义打开浏览器的桥接函数 通过渲染进程发送open事件 桥接函数 const { contextBridge, ipcRenderer } = require...gotTheLock) { app.quit(); } else { // 当第二个实例被执行并且调用 app.requestSingleInstanceLock() 时,这个事件将在你的应用程序的首个实例中触发...file://", __dirname, "index.html"); shell.openExternal(pagePath); }); 复制代码 总结: 本篇涉及到了以下2点: windows中第二个窗口实例处理
Electron Electron是什么,我们先看看官方https://www.electronjs.org/ 的介绍如何说的 What is Electron?...启动 执行npm start即可启动这个项目,可以看到打开了一个窗口,显示index.html的内容。 本地应用网络请求失败 上面可以看到在main.js中是通过loadFile来加载文件的。...应用只是在窗口内展示,所以Electron的窗口也需要我们关注,通过Electron提供的api来定义一个合适的窗口 窗口设置 在上面我们创建的main.js中,可以看到通过BrowserWindow创建的窗口...中,也就是说这里的高度是内容的高度+24 菜单栏 默认窗口是有菜单栏的,在mac上因为是在通知栏上而不是窗口上,所以不是很明显,但是在windows上就很明显了。...这是因为Electron的默认配置导致的,在Electron中默认是开启同源策略的,这样就导致无法访问外部的一些链接。
我们把隐藏的内容、或者次优先级的模块拆分出去,启动模块中只保留关键路径。我们也可以在浏览器空闲时预加载这些模块。...比如要求在初始化的过程中不要有‘副作用’,例如DOM访问。因为在‘编译时‘这些东西不存在。...这篇文章详细介绍了如何在 Electron 中应用 v8 snapshot: How Atom Uses Chromium Snapshots 还有一个更加广泛使用的方案是 v8 Code Cache。...这里用到了一些 Hack 手段,我们将这些窗口放到了屏幕之外,并设置 skipTaskBar 来实现隐藏或者关闭的效果。 对于频繁开启/关闭的窗口,也可以使用窗口池来优化。...千万避免在主进程中跑计算密集任务和同步I/O。
在开发模式上,Electron在调用系统API和绘制界面上是分离开发的,下面我们来看看Electron关于进程如何划分。...在BrowserWindow的构造参数中,将frame设置为false可以指定窗口为无边框窗口,将工具栏隐藏后,就会产生两个问题: 1.窗口控制按钮(最小化、全屏、关闭按钮)会被隐藏 2.无法拖拽移动窗口...可以通过指定titleBarStyle选项来再将工具栏按钮显示出来,将其设置为hidden表示返回一个隐藏标题栏的全尺寸内容窗口,在左上角仍然有标准的窗口控制按钮。...并且有两种对象可以调用打印: 通过window的webcontent对象,使用此种方式需要单独开出一个打印的窗口,可以将该窗口隐藏,但是通信调用相对复杂。...首先要监听窗口的关闭事件,阻止用户关闭操作的默认行为,将窗口隐藏。
QQ截图、微信截图,直接黏贴到编辑器中) 图片拖拽到编辑器中自动上传 插入公式、插入地图、插入表情、插入表格、插入音乐、插入代码...一应俱全; 纯客户端,直接与博客园服务端通信(没有任何自建服务,不采集用户任何信息...程序的入口是一个js文件 在js文件里打开一个窗口,让这个窗口加载指定的画面 functioncreateWindow () { mainWindow = newBrowserWindow({...的时候,创建了一个窗口,并加载了一个路径 app和窗口都是通过下面的代码得来的: import{ app, BrowserWindow } from 'electron' 路径是通过下面的代码得来的:...`http://localhost:9080`: `file://${__dirname}/index.html` electron允许打开子窗口,也允许开多标签页 在苹果端,当所有窗口都关闭后...要想绕开这个东西,成本一下子高很多 因为这个东西的目的,就是为了防止被绕开的 (其实我有思路,但并未做尝试) 后来想到,就算绕开又如何呢?
领取专属 10元无门槛券
手把手带您无忧上云