14.utools原理剖析

一、前言

本文的主要目的是剖析一下utools工具是如何能用拼音搜索到各种系统设置并打开的。

不过在此之间,也简单介绍一下最近我在开发一款类utools的软件,目前效果如下:

image-20231206213247960

名字暂定为KuTools,就是图标还有点难看,后面应该还要更换,名字后续如果有更好的想法可能也会更换。

当然,并不仅仅只是仿照utools,毕竟那就没竞争力了,我的目标是直接将一些强大软件的功能都集成到我的这个软件中来,比如上图中的Markdown工具,就是本软件的第一个功能,其目标是对标Typora,但争取会比Typora更加好用!

同时后续也还会继续集成EverythingSnipaste乃至chatgpt等强大软件的功能。

不过显然,这个工作量是很大的,仅仅是一个markdown编辑器的基本功能,我就已经写了好几天了,目前成品如下:

image-20231206214105295

还有就是等后续熟悉了Tauri框架之后,再尝试一下看能不能也加一个插件系统,想要做的事实在是太多了,平时还要花时间写文章,时间根本不够用啊!。

二、系统功能搜索

回到本文的正题,由于开发markdown编辑器的工作量太大,只能慢慢来,所以就想着能不能先试着完成一些utools工具的基本功能。

比如可以用拼音首字母搜索系统设置:

image-20231206214437618

不仅如此,它还能在程序中直接将其打开!看着简单,但突然让我来实现的话,还是有点懵的。

最后花费了好一会,还是让我找到了其原理。

windows系统中有一个叫做ms-settings的命令,通过在其后添加一些名字,被官方称为URL,就可以直接通过命令打开了。

比如可以直接在控制台输入下面的命令打开电脑的设置:

start ms-settings:

所以我们如果想要在程序中打开某一个系统设置,就可以通过这种方式打开,比如C/C++中就可以使用system函数执行系统命令。

更多设置命令可以参考官方文档:Launch the Windows Settings app

至于程序中的图标,是其开发者自己绘制再集成到程序中的,可以将utools安装目录下的resource/app.asar文件解压就能看到:

image-20231206215942349

哎,使用Electron框架开发的弊端就在于此,别人可以直接拿到你的开发资源与代码。

只不过它的代码做了混淆,很难看,但并非不能分析,只需要在其启动代码中写上一个开发调试器的代码,重新打包,就能运行软件动态分析其工作逻辑了。

不过这一过程肯定也是繁琐的,也正因这种种的原因,我的这个程序使用的是tauri框架进行的开发,兼容问题以后总会慢慢解决的。

最后还有其拼音首字母搜索的功能,其实一般都是有相应开源库实现的。

比如Tauri中我希望充分利用rust的性能优势,使用rust来进行拼音首字母匹配,就可以使用库:rust-pinyin

将文本转换为汉字,再使用正则表达式进行匹配。

或者还有js的xmflswood/pinyin-match库,更加方便,直接自带匹配功能。

作者:余识
全部文章:0
会员文章:0
总阅读量:0
c/c++pythonrustJavaScriptwindowslinux