有图标名称,例:用代码获取桌面:"360浏览器"图标当前坐标值及对应的图标序号,因为有序号我才能控制该图标坐标,获取当前坐标是判断坐标是否位置不对,
网上找到部分代码测试
'获得桌面句柄。
hdesk = FindWindow("progman", vbNullString)
hdesk = FindWindowEx(hdesk, 0, "shelldll_defview", vbNullString)
hdesk = FindWindowEx(hdesk, 0, "syslistview32", vbNullString)
'查找桌面图标数目。
icount = SendMessageByLong(hdesk, LVM_GETTITEMCOUNT, 0, 0&)
For i = 0 To icount - 1
'显示图标。
Call SendMessageByLong(hdesk, LVM_GETITEMPOSITION, i, pFileMap)
'返回坐标。
CopyMemoryTwo Curpos, pFileMap, 8
IconPosition(i) = Curpos
IconPosition2(i) = Curpos
objItem.mask = LVIF_TEXT
objItem.iSubItem = 0
objItem.pszText = pFileMap2
objItem.cchTextMax = 40
CopyMemoryOne pFileMap, objItem, 40
lngLength = SendMessageByLong(hdesk, LVM_GETITEMTEXT, i, pFileMap)
CopyMemoryTwo savebuf, pFileMap2, 40
'取得图标名称。
If lngLength > 40 Then lngLength = 40
strName = Left$(savebuf.x, lngLength)
IconName(i) = strName
End Sub
经测试获取名称、坐标返回失败,可能我的是WIN10系统,但可控制序号图标坐标。
总结:控制图标可以,难在获取当前桌面图标名称对应的序号及坐标,求控制目标,获取当前桌面图标实时对应数据。