Win7系统桌面不同于XP及老版本的桌面系统,增加了很多人性化的功能,比如桌面图标可以根据自己的需要调整为大、中、小三种类型的大小,也可以根据自己的需要按住CTRL+鼠标滚轮控制图标大小。这一点非常的人性化,这里给大家介绍,如何模拟人工手动操作方式让程序去帮助我们调整图标的大小。 实际操作桌面图标大小,我们只需要模拟键盘CTRL+鼠标滚轮消息发送给Windows的桌面进程句柄就可以了,通过Spy++我们截取到了按住CTRL+鼠标滚轮的消息是WM_MOUSEWHEEL,在第一个参数中我们可以设定是否按住CTRL键,参考:http://msdn.microsoft.com/en-us/library/ms645617(VS.85).aspx,根据该功能我们实现了如下具体代码: - #include <ButtonConstants.au3>
- #include <GUIConstantsEx.au3>
- #include <WindowsConstants.au3>
- #Include <SendMessage.au3>
- #Region ### START Koda GUI section ### Form=
- #cs
- 代码出自:邓佳的博客 http://www.nmgwddj.com/
- 参考资料:http://msdn.microsoft.com/en-us/library/ms645617(VS.85).aspx
- #ce
- ;//$WM_MOUSEWHEEL已在WindowsConstants.au3中定义
- ;//Global Const $WM_MOUSEWHEEL = 0x020A
- Global Const $MK_CONTROL = 0x0008
- ;//得到桌面SysListView321控件句柄
- $hSysListView32 = ControlGetHandle("Program Manager", "", "SysListView321")
- $Form1 = GUICreate("控制Win7桌面图标大小", 163, 123)
- $Button1 = GUICtrlCreateButton("放大图标", 8, 8, 147, 49)
- $Button2 = GUICtrlCreateButton("缩小图标", 8, 64, 147, 49)
- GUISetState(@SW_SHOW)
- #EndRegion ### END Koda GUI section ###
- While 1
- $nMsg = GUIGetMsg()
- Switch $nMsg
- Case $GUI_EVENT_CLOSE
- Exit
- Case $Button1
- _SendMessage($hSysListView32, $WM_MOUSEWHEEL, BitOR(BitShift(120, -16), $MK_CONTROL), 0)
- Case $Button2
- _SendMessage($hSysListView32, $WM_MOUSEWHEEL, BitOR(BitShift(-120, -16), $MK_CONTROL), 0)
- EndSwitch
- WEnd
复制代码
转自邓佳博客
|