找回密码
 加入
搜索
查看: 1134|回复: 3

FindItem在64bit系统下不工作该如何解决啊?

[复制链接]
发表于 2009-8-14 10:06:36 | 显示全部楼层 |阅读模式
本帖最后由 ipgss 于 2009-8-17 09:40 编辑

Help文档里说“作为 32-位的应用程序,一些命令运行于64-位 Windows 操作系统(IA64 或者 X64 机器). 如:"GetText" 和 "FindItem" 不工作.” 可是现在必须得用到FindItem,在64位系统下就出错,使用了DllCall("kernel32.dll", "int", "Wow64DisableWow64FsRedirection", "int", 1)
也不好用。
例如,在E盘有文件夹test,test下有aa和bb文件夹,现查找bb文件夹,代码如下。
#include <GuiListView.au3>

$searchName = "bb"
ShellExecute("E:\test")
Sleep(500)
$Title = WinGetTitle("[active]")
$hWnd = WinGetHandle($Title)
ControlListView($hWnd, "", "SysListView321", "SelectClear")

$iItem = ControlListView($hWnd, "", "SysListView321", "FindItem", $searchName)

MsgBox(0, "$Item", $iItem)
在32bit系统下返回值为1,在64bit下返回-1
改为:
DllCall("kernel32.dll", "int", "Wow64DisableWow64FsRedirection", "int", 1)
$iItem = ControlListView($hWnd, "", "SysListView321", "FindItem", $searchName)
DllCall("kernel32.dll", "int", "Wow64EnableWow64FsRedirection", "int", 1)
也同样不好用。

该怎么做啊,不要使用FileOpenDialog等,得使用FindItem这个功能,在64下可怎么办啊,该如何解决啊,请高手们多多帮忙啊。
 楼主| 发表于 2009-8-17 08:54:07 | 显示全部楼层
大家有没有会的呀,帮帮忙呀。
发表于 2009-8-17 08:59:46 | 显示全部楼层
编译的时候有没有选择X64
 楼主| 发表于 2009-8-17 09:07:43 | 显示全部楼层
本帖最后由 ipgss 于 2009-8-17 09:40 编辑

Thank you.

要在X64下使用,编译时选择X64就可以了,32时就不选择,
看来只有编译成两个.exe文件了。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-2 16:25 , Processed in 0.071224 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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