2014-10-07 10:33:13
前面有篇博文谈及基于标签的文档管理方式, 也推荐了一些软件, 但我试用后觉得都不是很满意, 决定自己山寨一个基于标签的, 类似于Google桌面搜索的工具, 叫Taggie.
想法起源于一则留言 62, 这使我知道了ADS这个概念. 在网络上寻找到了很多相关的资料
- 系统中的隐身人——ADS数据流文件
- NTFS多流文件、结构化存储和摘要属性集合
- 利用NTFS交换数据流隐藏文件
- Reading Extended File Attributes on NTFS
- File Streams
- Win32 Strustured Storage via File - Properties - Summary
- NTFS file stream operations with ahk
- 4NT8 and NTFS Streams
- Exploring Alternate Data Streams
- Exploring Alternate Data Streams
- How To Use NTFS Alternate Data Streams
- vb6怎么获取图片文件的修改时间?
- Alternate Data Streams on a folder
- Reading And Writing Alternate Streams In C#
- SummaryInformation 流格式
- Notes on the SummaryInformation stream
- Read/Write SummaryInformation with StgOpenStorage
- Setting File Summary Info
- Comments, ADS, metadata… in Vista, 7, 8…
GitHub上也找到一个基于python的实现
然后我基于python实现了demo. 在这过程中也对python熟悉了很多, 特别是编码的问题, 因为牵涉到文件名中的中文问题, 还有二进制文件的读写.
- python 中文乱码 问题深入分析
- python读写不同编码txt文件
- 也谈 Python 的中文编码处理
- python初级教程:入门详解
- Python读写二进制文件
- 用Python做科学计算
- 学习笔记
- Shell手册
- 啄木鸟社区
- naconda
但我发现用python实现windows下的程序很是麻烦, 由于代码不是很复杂, 所以决定改用AutoHotKey来实现, 这样使用就方便了. 当然也会遇到烦人的编码问题.
搜索后的结果显示界面, 就照着Google的页面山寨了. Google的logo使用的字体是Catull, 大小大约是75pt.
为了能在页面中执行搜索, 我们可以使用js, 但是不安全, 更好的解决方案是利用URL协议, 类似于点击网页上的下载链接就可以启动相应的程序.
- 将应用程序注册为URL协议
- 自定义URL Protocol 协议
- 超连接的方式给应用程序传递参数方法的实现
- 利用URL Protocol实现网页调用本地应用程序
- JAVASCRIPT控制计算机
- 如何使用js调用系统命令
- 在网页中执行本地exe程序的两种方式
如果要想进一步改进, 可以参考Everything, 或是使用其SDK, 实现实时扫描. Everything的原理网上也有, GitHub上还有一个相应的山寨项目QSearch. 不过对我, 功能已经够用了, 就不折腾了.
- Everything必知必会
- Everything的原理猜想与实现
- 探索 Everything 背后的技术
- 在gvim中实现基于Everything SDK的极速搜索
- C# Everything SDK
–>