level 10
song_5007
楼主
@a13075958573
我提供个思路
CPU占用极低
1.初始化DX,输出到SHELLDLL_DefView
2.设置桌面为纯色(128,128,64)
3.调用SetLayeredWindowAttributes使SysListView32的桌面背景透明。
重点:
4.GetCursorPos获取鼠标坐标,GetItemPosition历遍桌面图标获取位置,如果鼠标在图标外,给SysListView32赋予WS_EX_TRANSPARENT,如果在图标内,消去WS_EX_TRANSPARENT(用SetWindowLong)
好处:
不用重启explorer,不用HOOK,不用重绘,占用资源少。
弊端:
程序异常结束后壁纸无法恢复(处理方案:用另一进程管理)
需要提权。
以上仅是理论,你可以试试看。
2014年06月11日 03点06分
1
我提供个思路
CPU占用极低
1.初始化DX,输出到SHELLDLL_DefView
2.设置桌面为纯色(128,128,64)
3.调用SetLayeredWindowAttributes使SysListView32的桌面背景透明。
重点:
4.GetCursorPos获取鼠标坐标,GetItemPosition历遍桌面图标获取位置,如果鼠标在图标外,给SysListView32赋予WS_EX_TRANSPARENT,如果在图标内,消去WS_EX_TRANSPARENT(用SetWindowLong)
好处:
不用重启explorer,不用HOOK,不用重绘,占用资源少。
弊端:
程序异常结束后壁纸无法恢复(处理方案:用另一进程管理)
需要提权。
以上仅是理论,你可以试试看。

