1 (изменено: alexii, 2014-02-24 22:44:48)

Тема: VBScript: Работа с проводником Windows (поиск файлов)

Запускаю поиск (Пуск - Найти - Файлы и папки):

Set objShellApp = CreateObject("Shell.Application")
objShellApp.ShellExecute "", "", "d:\", "find", 1

1. Как заполнить поля окна поиска: имя файла, слово или фраза в файле? (SendKeys не хочет работать)
2. Самое главное - как получить список найденных файлов?

2 (изменено: wisgest, 2014-02-24 20:19:24)

Re: VBScript: Работа с проводником Windows (поиск файлов)

E_v_g пишет:

(SendKeys не хочет работать)

По идее, должен.

E_v_g пишет:

1. Как заполнить поля окна поиска: имя файла, слово или фраза в файле?

Возможно, с помощью AutoItX3.Control

E_v_g пишет:

2. Самое главное - как получить список найденных файлов?

JScript (поленился переводить на VBS):

SearchResultsFolderPath = "::{E17D4FC0-5564-11D1-83F2-00A0C90DC849}"
Shell = new ActiveXObject("Shell.Application");
ShellWindows = Shell.Windows();
for (i = ShellWindows.Count; --i >= 0;) try {
    Folder = ShellWindows.Item(i).Document.Folder;
    if (Folder.Self.Path.toUpperCase() == SearchResultsFolderPath) break;
} catch (Err) {}
if (i < 0) {
    WScript.Echo("Окно не найдено");
    WScript.Quit(1);
}
FolderItems = Folder.Items();
Count = FolderItems.Count;
for (i=0; i < Count; i++) {
    Item = FolderItems.Item(i);
    WScript.Echo(Item.Path);
}

3

Re: VBScript: Работа с проводником Windows (поиск файлов)

Спасибо большое! Это именно то, что нужно.