Au3控制Win7桌面图标大小
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
转自邓佳博客
:):):):):):)
页:
[1]