【模仿DeskPins的过程坎坎坷坷,本来想两三天的事情,结果做了一周多的时间。记录一下开发这个工具的过程,与诸位分享。】
网上有个叫 DeskPins的小工具,它可以让一个或几个窗口置顶,但是有时候仅置顶并不能满足需要,我还希望能把置顶的窗口透明。于是我便有了要自己写一个DeskPinsEx的想法。当然,自己目前还是在学WinSDK,所以就拿这个项目来练练手。
DeskPins的主要功能说起来比较简单
1. 它有一个只有托盘图标,没有主窗口,点击这个图标后,鼠标变为大头针样式(这项功能在win8/win7 64位上无法正常实现,估计是由于它装了全局钩子,写在了32位的dll里。要知道DeskPins的制作日期是在2004年左右,当时64位机应该不多作者没有考虑这一点。所以我也暂不考虑鼠标变形^_^),然后选择一个窗口,如果选择了一个子窗口,它会提示“无法使子窗口置顶”,并把父窗口置顶;选择父窗口的话将直接将其置顶。
2. 支持全局自定义快捷键,按下之后把当前活动窗口置顶。对于置顶的窗口,会在右上角靠近窗口最小化位置显示一个大头针的按钮,就像这样:
当然我们还可以看到,当鼠标移动到大头针按钮上时,变成了指针+叉号的形状。点击这个大头针,可把置顶的窗口取消置顶。
3.当然它支持同时置顶多个窗口。
4.另外,当含有大头针的窗口最小化后,它的大头针也会隐藏(这好像是废话~)
它的主要功能大概就是这个样子。我们的目的就是要实现这些功能(其他的还支持自定义设置),再加上支持窗口透明功能。
好,分析完它的功能,