0

我的任务是一个项目,该项目要求我从一个文件夹中检索特定文件,在该文件夹中我只能在屏幕上获得 X 和 Y。在 XP 中,我设法利用 Windows 资源管理器本质上是一个列表视图这一事实,并使用 WM_HITTEST 消息来获取有关文件的信息,但在 Windows 7 中,情况并非如此。

为了解决这个问题,我正在使用 UI Automation,这是一个很好的工具,唯一的问题是,在这种情况下,我正在查看的 windows 句柄属于桌面,桌面可能有几个相同的文件名称但具有不同的扩展名(并且 Windows 配置为“隐藏已知文件类型的扩展名”) UI 自动化不会将扩展名返回给我。我尝试了很多事情,但我找不到任何可以让我 100% 成功的强大解决方案。

有没有人试过这个?成功地?

4

1 回答 1

0

您能否提供有关“文件夹中的特定文件”的更多详细信息?
您将使用哪些规则来手动识别文件?

对于这种情况,我不会说通过 GUI 是最好的方法。如果有任何东西可以用于识别存储在文件/文件夹系统中的文件,我会尝试通过后端。

一个简单的例子来说明。统计文件夹中包含的文本文件总数,并存储找到的所有 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/

于 2010-04-13T12:46:37.027 回答