找回密码
 加入
搜索
查看: 1586|回复: 2

[系统综合] 这段代码怎么兼容64位系统

[复制链接]
发表于 2012-3-22 00:52:16 | 显示全部楼层 |阅读模式
Func _GetShortcutPos()
        Local $hListView = ControlGetHandle('Program Manager', 'FolderView', 'SysListView321'), $ix = 0
        Local $aShortcutPos[2]
        While 1
                $aRect = _GUICtrlListView_GetItemRect($hListView, $ix)
                If $aRect[1] = 0 And $aRect[2] = 0 And $aRect[3] = 0 Then ExitLoop
                If ControlListView('Program Manager', 'FolderView', 'SysListView321', 'GetText', $ix) = $sShortcut Then
                        $aShortcutPos[0] = $aRect[0] + 60
                        $aShortcutPos[1] = $aRect[1]
                        ExitLoop
                EndIf
                $ix += 1
        WEnd
        If $aShortcutPos[0] = 0 And $aShortcutPos[1] = 0 Then Return SetError(1)
        Return $aShortcutPos
EndFunc   ;==>_GetShortcutPos



这段在桌面找图标的代码  在64位系统上出错, 必须用64bit编译或运行才通过

用x86运行会出错,不知道可以解决吗
发表于 2012-3-22 06:49:51 | 显示全部楼层
原因在于_GUICtrlListView_GetItemRect
跨进程操作listview,指针要求位于目标进程
32位进程不能操作64位进程
反之亦然.

评分

参与人数 1金钱 +10 收起 理由
user3000 + 10 谢谢, 学习到新东西了!

查看全部评分

发表于 2012-3-22 08:53:06 | 显示全部楼层
如果问题解决了请修改标题加【已解决】,看到楼主发的很多贴,问题解决了都没修改标题建议楼主认真看看这几篇帖子
http://www.autoitx.com/thread-10945-1-1.html
http://www.autoitx.com/thread-18544-1-1.html
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-10 17:31 , Processed in 0.157079 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表