今天跟大家伙儿唠唠我最近搞的一个小玩意儿,暂且叫它“窗口隐藏精灵”,听着是不是有点意思?这名字虽然土了点,但功能是真的实用。
事情是这么开始的,我平时工作的时候喜欢开很多窗口,有时候是文档,有时候是网页,还有时候是各种工具,桌面那是相当的热闹。但是,总有那么几个窗口,开着占地方,关了又麻烦,比如一些监控程序,或者一些不常用的工具。我就寻思,能不能搞个东西,一键把这些窗口藏起来,需要的时候再一键呼出来?
说干就干,我先是上网搜了一圈,发现已经有不少类似的软件了,什么“黑洞偷闲精灵”、“一键隐藏精灵”,名字都挺唬人的。但是,要么是要安装的,要么是功能太复杂,要么就是界面太丑,反正没一个让我满意的。得,还是自己动手丰衣足食。
我用的语言是易语言,没办法,谁让咱是半路出家的程序员,只会这个。先新建一个工程,然后就开始琢磨怎么实现窗口隐藏的功能。
第一步,当然是获取要隐藏的窗口句柄。这个简单,用“枚举窗口”命令就能搞定,把当前所有打开的窗口都列出来。
第二步,做一个界面,让用户选择要隐藏的窗口。我用了一个列表框来显示窗口标题,用户点击哪个,哪个就被选中。
第三步,也是最关键的一步,就是隐藏窗口。这个我查了下资料,可以用“ShowWindow”这个API函数来实现。ShowWindow(窗口句柄, 0)就是隐藏窗口,ShowWindow(窗口句柄, 1)就是显示窗口。
有了这三个步骤,一个简陋的窗口隐藏精灵就诞生了。但是,这玩意儿只能隐藏,不能恢复,而且每次都要手动选择窗口,太麻烦了。
于是我就开始改进。
我增加了一个“恢复”按钮,点击这个按钮,就能把之前隐藏的窗口都显示出来。这个也很简单,就是把之前隐藏的窗口句柄保存到一个数组里,点击“恢复”按钮的时候,再遍历这个数组,调用ShowWindow(窗口句柄, 1)就行了。
然后,我又增加了一个快捷键功能,让用户可以自定义快捷键来隐藏和显示窗口。这个用“RegisterHotKey”这个API函数来实现。注册一个全局快捷键,当用户按下这个快捷键的时候,就触发相应的事件。
经过几天的折腾,这个“窗口隐藏精灵”总算是有点样子了。虽然界面还是有点丑,功能也比较简单,但是用起来还是挺方便的。至少,我可以一键隐藏那些不常用的窗口,让桌面清爽不少。
这玩意儿还有很多可以改进的地方,比如增加记住上次隐藏窗口的功能,增加托盘图标,等等。不过 আপাতত,先这样用着,等以后有时间再慢慢完善。
这回实践让我体会到,只要肯动手,就能做出一些实用的小工具。而且在做的过程中,还能学到很多东西,这才是最重要的。