以前用listary,旧版在win11上有些表现不太好,升级后软件占用系统资源变多,功能多了一些不想要的,于是想自己写一个“外挂”来实现部分listary的功能。
listary整体来说有三个功能,一是双击ctrl唤出一个搜索框,一是在搜索框输拼音首字母可以定位到软件,最后是在文件打开对话框,它会自动把打开的文件夹的路径复制到这个对话框,并且导航到那个目录。当然,还有其他的功能,只是我不怎么用。
前面的两个功能,可以用everything+插件来接近实现,用了GitHub - Chaoses-Ib/IbEverythingExt: EvEx: Everything 拼音搜索, ローマ字検索, wildcard, quick select, Shell extension · GitHub 可以实现拼音搜索,再加上按运行次数排序,就基本可以替换前两个功能。
第三个功能,之前用python写了一下,总是有些不好用,而且在处理wps的文件打开对话窗口的时候会失效。
今天心血来潮,想着AI编程功能变强了,能不能实现了。于是,用deepseek试了一下。把功能需求拆解,第一个是找到打开的文件管理器的路径,经过几轮交互,实现了,因为我电脑上没有安装微软的c/c++的IDE,只是用的dev cpp这个软件,因此,有些代码需要注意一下,有些库不能用,当我告诉ai我用的是什么工具后,它大多数时候是可以考虑到工具的特点的。第二个功能是检测文件打开对话框,这个在wps以外的对话框上没什么难度,在wps这里遇到了问题,因为wps是QT写的,就一个窗口句柄(spy ++里无法区分哪个是文件打开对话框),导致查找的时候交互了不下10轮,最终,ai给出了一个折中的方案,wps在查阅文件的时候是有title的,在打开文件窗口title是空的,其他的都一样,包括句柄id。就用这个title的有无实现判断。
分功能测试过后,就表示路线是走的通的,然后就让AI用前面的方法实现类似listary的文件管理功能,当然,是具体描述了功能。AI很快就给出了一版代码,基本可用,有些小bug,交互了几轮,修复了小bug后,功能就全实现了,有点意外的是,在处理wps的对话框的时候,我没有特意的处理,它就自动的能把文件路径导航到新目录。
新写的程序,编译后,exe文件很小,只有不到2M,占用内存也是很小,仅0.8M,cpu占用为0, 相当省资源了。
AI发展很快,这个写的代码总行数也不太多,400行,功能很完整。关键是,我自己不太会c++做这种应用开发。当有想法,能读懂AI的要求,能把测试结果准确的反馈给AI,AI就可以给出一个解。通过这次测试,我发现功能合起来的时候,它自动的注意到了之前的问题,上下文联想的能力很强了。对于编程需求不是很强的人,免费版足够了,如果要写大的工程项目,可能还是要用付费服务。
对了,前面的功能,双击ctrl调出everything后面用c也实现了,比python版的稳定,基本不会出现键粘连的情况。只是需要用管理员权限运行。思路是everything有唤醒界面的快捷键,当检测到双击ctrl后,自动发送快捷键。