如何取得当前选中的桌面图标的座标
本帖最后由 g1325 于 2009-12-1 12:01 编辑弄个排桌面图标的东西,但是有时候排好了,点右键刷新一下,图标就又乱了
经测试,在取消自动排列后,只要用鼠标拖动任一图标移动一下,就可以刷新后不乱,现在 就是问
如何取得当前选中的桌面图标的座标,然后将鼠标移动到这个座标上,并拖动这个图标左移或或移少许。注意,是用鼠标拖,
类似_SendMessage($hWndDesktop, $LVM_SETITEMPOSITION, $i_index, BitOR(BitShift($i_y, -16), BitAND($i_x, 0xFFFF)))这种代码不要,因为不是用鼠标操作图标移动的,没有效果 。
大家帮帮忙吧。 搞定了,只要先把图标移动到一个座标上,然后模拟鼠标操作就行了$hWndDesktop = ControlGetHandle("Program Manager","",1)
$i_index = 0
$i_x = 21
$i_y = 3
_SendMessage($hWndDesktop, $LVM_SETITEMPOSITION, $i_index, BitOR(BitShift($i_y, -16), BitAND($i_x, 0xFFFF)));移动桌面第一个图标
;WinActivate ($handle,"");激活桌面
;ControlListView($handle,"",$ctrl,"Select",0,0) ;选中桌面第一个图标
;MouseMove(41,21,0);移动鼠标到第个图标
MouseClickDrag("",41,45,21,25,0);拖动图标
Local $xy
$xy = _GUICtrlListView_GetItemPosition($ctrl, 0);取得桌面第一个图标的座标
$x1 = ($xy+16)
$y1 = ($xy+16)
$x2 = ($xy+32)
$y2 = ($xy+32)
WinActivate ($handle,"");激活桌面
MouseClickDrag("",$x1,$y1,$x2,$y2,0);拖动图标
MouseClickDrag("",$x2,$y2,$x1,$y1,0);还原图标原来位置
不 错学习了 围观一个,应该用得上
页:
[1]