易语言资源网 - 做最全的易语言资源下载社区
<易语言软件开发工程师>第11期(预报名) 注册 登录

鼠标双击桌面空白区域隐藏图标的源码   [复制链接]

    2021-06-01 19:21:03
    高级教程源码
    易语言资源网
    440 次浏览
    来源链接


讲一下实现的原理和我研究的路上碰到的阻碍:

想要实现这个功能:

问1:首先要获取鼠标双击桌面的消息。

问2:判断是双击的桌面图标还是双击的桌面空白区域。

答1:第一个问题是通过hook全局鼠标来实现判断,hook了全局鼠标后,通过判断鼠标当前指向的窗口句柄来判断鼠标是否在桌面双击。

答2:由于桌面是一个超级列表框控件,通过精易模块里的外部超级列表框类,绑定桌面的超级列表框句柄,通过取鼠标指针所在的索引来判断当前鼠标是在图标上,还是在空白区域。

然后通过隐藏和显示SyListView32这个桌面句柄就能达到双击桌面隐藏和显示桌面图标的效果。

接下来讲下遇到的问题:

本来是想直接获取桌面句柄的鼠标移动,但是不会hook桌面句柄或者是截获桌面句柄的消息,所以只能通过hook全局的鼠标消息来实现,如果有谁懂直接获取桌面的双击消息,可以发个例子出来。

通过外部超级列表框类,可以获取鼠标放在哪个桌面图标上,还有通过外部超级列表框.取表项位置 (, )取出桌面图标的坐标,但是通过外部超级列表框.取标题 (, , )这个命令,无法取出桌面图标的名称,如果有谁知道怎么通过外部超级列表框取桌面图标的名称的也可以发个例子。

有人可能会说桌面右键菜单里有显示隐藏图标,我觉得那样太麻烦,双击桌面的速度最快也最方便,如果有谁有更好的实现方法也可以分享出来。

编译的时候为了缩小软件的体积,用了黑月的界面创建,用汇编模式编译,编译完用了upx压缩,最后软件只有74k,其中一半还是程序图标的体积,源码只使用了精易模块,自己替换成自己的精易。



点我下载(已有 29 次下载)

引用模块


源码文件名模块文件名
隐藏桌面图标.e
精易模块.ec


引用支持库


源码文件名支持库文件名支持库标识
隐藏桌面图标.e系统核心支持库 5.7d09f2340818511d396f6aaf844c7e325
特殊功能支持库 3.1A512548E76954B6E92C21055517615B0
EXUI++20210406 2021.45014D8FA6DCA40b68FA626D8186666EB


[错误报告]   上一篇:精易模块V9.2.5 发布【2021.0...     下一篇:外部程序嵌入易语言运行,易语言程序嵌入外...