我的任务是一个项目,要求我从一个文件夹中检索特定文件,我只能在屏幕上获得X和Y.在XP中,我设法使用Windows资源管理器本质上是一个列表视图,并使用WM_HITTEST消息获取有关该文件的信息,在Windows 7中,情况并非如此。
要解决这个问题,我正在使用UI自动化,这是一个很好的工具,只有在这种情况下,我正在看的Windows手柄属于桌面,而桌面可能有几个文件具有相同的名称但具有不同的扩展名(并且Windows配置为“隐藏已知文件类型的扩展名”)UI自动化不会将扩展名返回给我。我尝试了很多东西,但我找不到任何可以让我100%成功的强大解决方案。
有人试过吗?成功?
答案 0 :(得分:0)
您能提供有关“文件夹中特定文件”的更多详细信息吗? 您将使用哪些规则手动识别文件?
我不会说通过GUI是这种情况的最佳方式。 如果有任何可用于识别存储在文件/文件夹系统中的文件的内容,我会尝试通过后端。
一个简单的example来说明。计算文件夹中包含的文本文件总数,并存储找到的所有Excel文件的路径。
Dim sFolder
Dim FSO, objFolder, objFile, objXLSList
Dim intTXTCount
sFolder = "C:\TEMP"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set objXLSList = CreateObject("Scripting.Dictionary")
Set objFolder = FSO.GetFolder(sFolder)
intTXTCount = 0
For Each objFile In objFolder.Files
If Regex_Test(objFile.Name, ".*\.[t,T][t,T][t,T]") Then
intTXTCount = intTXTCount + 1
End If
If Regex_Test(objFile.Name, ".*\.[x,X][l,L][s,S]") Then
objXLSList.Add objXLSList.Count, objFile.Name
End If
Next
谢谢你,
Albert Gareev
http://automation-beyond.com/