caj2pdf
caj转pdf 某天拿到了一个caj转pdf的工具,是用pyQt写的,好像大小得100MB,就把这个拆解了一下然后用Tauri重新写了一下前端,同时练一练刚学的Tauri。 仓库:Creeeeeeeeeeper/caj2pdf: CAJ file convert to PDF, based on Tauri (github.com) 可以直接下载release版(仅测试过Win11) 下面记录一下在开发过程中遇到的几个问题: 1.Tauri使用的js是原生的js,不是nodejs,没法直接获取文件的绝对路径 因为要构建命令行,所以需要获取到文件的绝对路径传到参数上,这里仅需要这个路径即可,也不需要将这个文件同时读取出来,所以就直接用的rust获取这个路径,js只负责调用一下: 123456789101112use rfd::FileDialog;#[tauri::command]pub fn get_files() -> Result<String, String> { match FileDialog::new().pi...
Tauri
构建首先自行安装好cargo 1npm create tauri-app@latest 然后根据提示选择项目名称、前端语言、包管理器、前端框架等,不知道怎么选的话可以按照以下方式选择: 然后进入到刚创建的目录(目录下有package.json)中,然后执行下面三行命令: 123cd tauri-appnpm installnpm run tauri dev 执行完最后一行命令后,会开始Downloading xx crates, remaining bytes: xxx MB,会开始下载一些依赖项,时间比较长,等着就行了。执行完之后文件夹非常大,六七个G差不多,不用管,一般rust的包都很大,但是生成的exe都很小。开发完成之后直接一个cargo clean就都清理完了 运行方式主程序Tauri的运行是从rust的main.rs开始执行的,如果完成了上面的所有操作,建好了一个tauri的程序,那么找到main.rs:(caj2pdf是我的程序名) 123456// Prevents additional console window on Windows in rel...
Rust
rust开发 为什么要学习Rust? Rust 语言的特点 内存安全:Rust 的所有权系统在编译时防止空悬指针、数据竞争等内存错误,无需垃圾收集器。 并发编程:Rust 提供了现代的语言特性来支持并发编程,如线程和消息传递,使得编写并发程序更加安全和容易。 性能:Rust 编译为机器码,没有运行时或垃圾收集器,能够提供接近 C 和 C++ 的性能。 类型系统:Rust 的类型系统和模式匹配提供了强大的抽象能力,有助于编写更安全、更可预测的代码。 错误处理:Rust 的错误处理模型鼓励显式处理所有可能的错误情况。 宏系统:Rust 提供了一个强大的宏系统,允许开发者在编译时编写和重用代码。 包管理:Rust 的包管理器 Cargo 简化了依赖管理和构建过程。 跨平台:Rust 支持多种操作系统和平台,包括 Windows、macOS、Linux、BSDs 等。 社区支持:Rust 有一个活跃的社区,提供了大量的库和工具。 工具链:Rust 拥有丰富的工具链,包括编译器、包管理器、文档生成器等。 无段错误:Rust 的所有权和生命周期规则保证了引用的有效性,从而避免了段错误。...
websocket chat
记录一个使用websocket的聊天室 WebSocket服务器使用的是nodejs (因为不会php) 只实现了一个广播消息的功能可以发送文字消息、文件(<100MB)、图片,传输的消息没有经过加密 有简单的登录和注册功能 点击此处下载代码01 点击此处下载代码02 点击此处下载代码03 点击此处下载代码04 点击此处下载代码05 点击此处下载代码06 分卷的六个小压缩包
Electron
Electron 桌面应用开发 构建使用npm构建经常报错,使用以下方法构建 1.打开npm配置文件 1npm config edit 2.将以下内容填入,如果已有该字段则修改 123registry=https://registry.npmmirror.comelectron_mirror=https://cdn.npmmirror.com/binaries/electron/electron_builder_binaries_mirror=https://npmmirror.com/mirrors/electron-builder-binaries/ 3.构建 1npm install electron --save-dev 构建成功 运行原理下面通过源码阅读的方式简要梳理Electron应用程序的原理 首先git clone https://github.com/electron/electron-quick-start,下载一个demo示例 使用npm start,就可以运行这个Electron应用程序 首先看前两行 12const ...
DeAnti-Capture
Anti-screen recording? (99%) It doesn’t exist! Firstly, I discovered that this video encryption player has an anti-screenshot and anti-screen recording effect. When I pressed the screenshot key of my screenshot software, the window turned black. However, it did not ban my screenshot software (Snipaste), which gives us many opportunities. Based on my previous experience with C# Winform, the reason the window turns black during screenshotting is that it uses the SetWindowDisplayAffinity fun...
在内网搭建ws服务器出现的一些问题
WebSocket服务器搭建时的一些问题 在搭建自己的一个内网网站时,将这个网站通过Sakura Frp穿了出去,因为Sakura_Frp开启隧道时打开了自动https(必须开不然访问不了网站),所以直接访问网站是https的,只不过会显示不安全(不受信任),网页还是可以正常访问的。 那么问题出在哪呢,昨天尝试在内网使用php写了一个websocket的聊天室demo,那么浏览器访问这个聊天室的时候先用https发送一个upgrade的请求,然后尝试websocket,但是通过frp的这个公网发送的请求,到了websocket会变成wss而不是ws,网页会返回状态码426,websocket尝试连接wss又不能强制转换成ws,使用frp访问网站也不能使用http访问,必须要https,所以应该需要搞一个CA证书。无法连接的报错如下: Mixed Content: The page at ‘https://frp-xxx.xxx:port/demoPage/‘ was loaded over HTTPS, but attempted to connect to the in...
捣鼓一块Raspberry Pi 5
之前一直弄Kali,Ubuntu,aliyunECS之类的,想搞一块本地的玩玩,整了块Raspberry Pi 5 思路:从tf卡启动系统,ssd作为存储盘,使用先电脑热点和XTerminal连接,系统使用Raspberry Pi OS Lite(后来发现Ubuntu不好使),然后使用Sakura frp内网穿透实现公网访问 硬件树莓派5首先就是一块Raspberry 5,规格是4核8G。 板子还挺好看 SSD硬盘买了一块戴尔的拆机硬盘 M.2 2230规格,128G花了68米 PCle to M.2用的微雪的PCle to M.2 MINI转接板,下图安装2230尺寸SSD时,需要使用铜柱和小螺丝把SSD固定住(捣鼓了半天没搞清楚怎么弄) 风扇风扇用的是国产的小风扇,13.9米,运行起来也没有声音,还不错 但是感觉到60度才开始降温有点不行,后面尝试调教一下 系统准备Ubuntu在这个网站Install Ubuntu on a Raspberry Pi | Ubuntu,下载的是ubuntu-24.04.1-preinstalled-server-arm64+...
随笔-一个DLL注入器
远程线程注入代码使用CreateRemoteThread,在Debug下编译,简单的创建远程线程,没有反反注入 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821...
Windows下的Java多版本管理
使用说明注意:此版本管理器用来设置全局Java版本,暂无局部修改功能(以后可能会加吧……) 下载 点击下方可以下载jvm.exe,放到一个不碍事的地方(藏起来也可以) jvm.exe 17.92Kb 配置系统变量首先确保系统变量和用户变量中没有配乱的Java环境变量,建议全部删除掉 全部删掉后,在系统变量中新建一个CLASSPATH变量,值为%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\bin。 在系统变量的Path变量中新建一个%CLASSPATH% 系统变量的配置就完了。 jvm.exe初始化写完JavaVersionManager发现首字母缩写和JavaVirtualMachine一样,不过没关系,用起来感觉也差不多,所以就还是叫jvm吧。 首先使用cmd运行jvm.exe,第一次会出现如下初始化信息: 如果这样就是初始化完成了,初始化时会在C:\User\&...
