这几天一直写一个小程序,QRunner,是用于快速启动程序用的,这是第一次用delphi写的一个比较完整的程序,感觉基本的功能都实现了,就是一些小的细节还没有实现,也是因为自己对技术还不够熟习吧.
QRunner可用于快速打开系统应用程序,而不需要在杂乱的"开始->程序"中迷茫的寻找我们想要的程序.事实上,QRunner可以打开运行任何文档,并非只是应用程序.具体用法,请看后面的小提示.它工作在后台,当需要的时候可以按下"alt + space" 调出即可.还提供模糊查询功能,你只需输入需要文件的部分文件名,就可以找到它!
安装:
完全绿色版,不需要安装,建议您在"启动"里设置一个快捷方式,方便使用.我不想因为这个就做成安装文件,何必要那个Uninst.exe呢?
原理:
1. QRunner自动搜索三个地方: 当前用户的"程序"文件夹和所有用户共享的"程序"文件夹,最后还包括桌面.需要注意的是,它使用的是递归搜索,所以如果您在桌面上有一个存放快捷方式的文件夹,它也能搜索到!
2. QRunner运行时会显示图标,请您对照文件名选择.
3. 默认的类型是快捷方式,您也可以自定义其它类型,比如电影和音乐,exe,bat等.
4. 在启动QRunner会根据配置文件(通常和它在同一个目录下,叫profile.dat,没有时会自动创建)创建索引文件,index.tmp,请不要在运行时手动删除它.
小提示:
1. 可以把它的快捷方式放到"启动"里,方便使用.它默认使用的内存在4M内,如果你运行了配置功能,可能会用到8M,那是因为加载了windows的运行库所致.建议您第一次运行配置好后,关掉它重新运行,这样就能减少内存使用.如果您不在乎4M的内存,那就当我没说,呵呵.
2. 添加目录时尽量不要添加包含多级子目录的目录,因为QRunner使用递归搜索目录,如果包含的目录太多,会影响使用性能.如果您添加了如"C:\"这样的目录,请不要抱怨它会慢的和windows的查找功能差不多(事实上,我觉得可能会快一些的,当然我没有测试过,呵呵)
3. 除了.lnk外,您还可以添加.mp3,.rmvb等任意类型文件.
4. 提供了界面颜色设置,因为使用皮肤会占用过多的内存,那样就喧宾夺主了.另外附带了窗体透明度的选项,您可以根据自己的爱好选择.
5. 当在QRunner运行过程中安装的其它软件,请使用更新索引功能,QRunner会重新构造索引.
问题:
1. 当您觉得输入错误时,请尽量不要使用delete,因为一些程序逻辑问题,使用delete后光标可能跑到最后.更多的情况,请使用backspace.
2. 某些软件可能会在使用中也使用了alt + space,如果发生这样的情况,请您重新定义热键,默认提供了3组.
抓个图看看一下(前几天的,现在界面好些了),哈哈.

其中有几个部分是难点,用了我好长的时间.一个是ComboBox的用法,因为要在用户输入的时候实现模糊匹配,而TComboBox提供的自动补全的功能实在是让我头疼,它总是画蛇添足的修改了用户输入的内容.我真的希望它没有这个功能!
另一个是关于内存的使用,我希望它在后台运行是使用最少的内存,首先想到的是所有的窗体都动态创建,在使用完后释放资源,可是虽然我使用了各种方法,在资源管理器里面显示的内存使用数并没有减少,不知道是VCL的问题,还是windows的问题,个人感觉是VCL保留资源,用于以后窗体的分配了.因为很明显我再次创建窗体的时候,内存用量没有增加.最后,是从delphi得到的灵感,当它激活时,使用了近65M内存,而最小化后,仅几M,于是想到先最小化在隐藏窗体,最后就实现了目前的结果.我想这个效果是windows在程序最小化时,释放了窗体的资源所致吧.算是一个trick吧.
东西虽小,也用到了不少的技术,幸亏网上有很多资料,可以查找:
1. 无标题栏窗体的移动
2. 给窗体画边框
3. 目录的搜索
4. 获得几个特殊目录,如桌面,几个用户的"程序"文件夹的位置
5. 热键的使用方法
6. 窗体的隐藏
7. 模糊查询的实现
8. ComboBox的一些特性
9. 在程序中启动另外的程序(文档)
10. 获得文件的图标
11. 动态窗体的使用
12. 最大化最小化应用程序
……
真的是只有做了,才知道能学到什么.地址