Electron框架使用vue开发跨平台桌面工具应用-后台日志发送到前台和执行导入ZIP

news/2024/11/18 13:54:00/文章来源:https://www.cnblogs.com/lovefoolself/p/18552430

一、后台日志发送到前台

  1. 首先在preload.js里面注册回调
    image
  2. 因为需要主窗口给vue页面发送,需要把窗口管理起来,不能直接写在backgroud.js里面。需要暴露出来所以编写了windowManager.js
// windowManager.js
let mainWindow = null;// 设置 mainWindow
export function setMainWindow(window) {mainWindow = window;
}// 获取 mainWindow
export function getMainWindow() {return mainWindow;
}// 发送日志到渲染进程
export function sendLog(message) {if (mainWindow) {mainWindow.webContents.send('sql-log', message);} else {console.error('Main window not initialized.');}
}

backgroud.js里面引用,并 setMainWindow(win);
3.在vue的js里面调用 sendLog("日志信息")

二、执行导入sql然后删除

  1. 解压不能使用_dirname了而是path(_dirname)获取到运行目录,也可以使用process.execpath获取执行exe所在的目录
 // 解压 ZIP 文件const zip = new AdmZip(zipfile);//const tempDir = path.join(__dirname, 'temp');//sendLog(process.execPath);//const tempDir = path.join(path.dirname(process.execPath), 'temp');const tempDir = path.join(path.dirname(__dirname), 'temp');if (!fs.existsSync(tempDir)) {fs.mkdirSync(tempDir);}zip.extractAllTo(tempDir, true);
  1. 删除函数如下
  async function deleteTempDirectory(dirPath) {try {const files = fs.readdirSync(dirPath);// 删除目录中的所有文件for (const file of files) {const filePath = path.join(dirPath, file);const stat = fs.statSync(filePath);if (stat.isDirectory()) {// 如果是目录,递归删除await deleteTempDirectory(filePath);} else {// 如果是文件,直接删除fs.unlinkSync(filePath);}}// 删除空目录fs.rmdirSync(dirPath);console.log(`临时文件夹 ${dirPath} 已删除`);} catch (error) {console.error('删除临时文件夹时发生错误:', error);}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/836143.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

强化学习理论-第5课-蒙特卡洛方法

之前的章节都是基于model base,这节是model free的方法。 1. model-base to model-free:2. 计算\(q_{\pi k}:\)3. MC base algorithm:step 1和model base是不一样的,后面的步骤是一样的。4. MC exploring starts算法:

Charles抓取不到浏览器请求(macOS)解决方案

一.Charles charles抓包工具,通常使用默认的端口号: http:8888 https:8443 在安装好Charles后,默认情况下http代理服务器运行在8888端口,https服务器运行在8443端口 二.解决方案: 1.先把证书安装上下载证书后,打开macOS-【钥匙串访问】,选择证书,右键【显示简介】--【…

打工人提效必备!4款好用的Win电脑效率工具

今天来给大家分享 4 款我换了 5 台电脑都一定会安装的效率神器软件,每一款都能让你的办公、学习效率大幅提升! 1、Everything 这是一款文件搜索神器!相信大家都有过在电脑里找文件找得焦头烂额的经历吧?Everything 就能完美解决这个问题。 它的搜索速度超快,几乎是秒出结果…

门控时钟-无毛刺的时钟切换

[图片]一、问题 假设存在这样的时钟控制模型:CLK1、CLK2以及系统时钟的频率与相位均不一致,我们希望在clk_sel=1时,输出CLK1,反之输出CLK2,CLK_SEL可以由系统时钟驱动,也可以由组合逻辑驱动。那么在这种情况下就会出现以下的“毛刺”问题:可以看到,在CLK_SEL的交界处,非…

vs code 提示图标含义

图标姓名符号类型方法和函数 method,,function​constructor变量 variable字段 field类型参数 typeParameter常量 constant课程 class接口 interface结构 struct活动 event运算符 operator模块 module属性和特性 property值和枚举 value,enum参考 reference关键词 keyword文…

Windows右键--新建文本创建快捷键

前言全局说明Windows右键--新建文本创建快捷键,中文版默认不带创建快捷键,而英文版带,一、说明 环境: Windows 7 旗舰版二、中文版系统 2.1 增加快捷键 打开注册表,路径: HKEY_CLASSES_ROOT\Local Settings\MuiCache\10B\AAF68885修改: 文本文档 为 文本文档(&T)使用…

Java 基础 - 字符串类

字符串类 重要的字符串类有 String、StringBuilder、StringBuffer 1、String String 是不可变类,内部是由 final 定义的字符数据构成。 private final char value[]; 1.1 String 类的层次结构如下:String 实现了比较接口,字符序列接口,序列化接口,具有以上接口的特性 1.2 …

Windows调用系统右键发送到zip打包指定文件

前言全局说明Windows 从 XP 自带的zip文件压缩/解压工具组件,但使用过程中,只能用鼠标操作,命令行中没有提供相关命令 如果想要用命令行打包成zip后缀的,就要调用第三方软件如7z,这样不方便。 今天在搜索如何修改右键新建文本名时,发现注册表中有个 @zipfldr.dll,-10148 …

Python程序py代码加密方法

Python程序语言使用方便,应用范围广,但Python的代码加密保护是一个问题,下面介绍一种专业的python程序py代码加密方法,可以有效地保护源代码!下载最新加密锁开发工具包 http://chinadlp.com/?list-DriveDownload.html完全默认安装后,打开如下开发工具 在安装目录下找到…

Nuxt.js 应用中的 vite:serverCreated 事件钩子

title: Nuxt.js 应用中的 vite:serverCreated 事件钩子 date: 2024/11/18 updated: 2024/11/18 author: cmdragon excerpt: 通过使用 vite:serverCreated 钩子,开发者可以在 Vite 服务器创建时执行特定的操作,包括添加中间件和自定义配置。这使得在开发环境中能够快速响应请…

DDL:数据库操作

1.所有的命令代码需要“;”做结尾 ,nivicat中已经默认加上了,但是命令行中一定要自己手动加上,不然不会被判定为写完语句。2.不区分大小写,nivicat中无需注意“;”结尾3.四种SQL语句: 数据查询语言:基本结构是SELECT子句,FROM子句,WHERE子句组成的查询快 数据操纵语言…