Тема: WSH: ShellFolderView.SelectItem в Win98 выдает ошибку
Здравствуйте! Помогите разобраться с непонятками.
Предыстория такая (это просто для полноты картины, к делу не относится).
Тут на форуме есть топик про скрипт для опции контекстного меню ярлыков в Проводнике (.LNK-файлы), чтобы переходить в папку, где лежит целевой файл ярлыка. Я долго пользовался этим скриптом, но недавно оказалось, что на Win98 он не работает. Я попросил автора адаптировать скрипт под Win98, но моя просьба не встретила отклика, поэтому мне пришлось взять дело в свои хилые ручонки.
Суть проблемы.
В Win98 метод ShellFolderView.SelectItem почему-то выдает "неопознанная ошибка", хотя на WinMe/XP работает нормально. При этом в MSDN сказано, что метод SelectItem поддерживается, начиная с Win98 (или Win95 + IE4), так что непонятно, почему оно не работает.
Пример
// Будем работать с файлом C:\TEST\DIR1\FILE.TXT
// (подразумевается, что этот файл на диске есть)
var Shell;
var ShellWindows;
var FolderView;
var pathToOpen;
var fileAsFoIT;
pathToOpen = "C:\\TEST\\DIR1";
Shell = WScript.CreateObject("Shell.Application");
ShellWindows = Shell.Windows();
// берем наш файл как объект FolderItem
fileAsFoIT = Shell.NameSpace(pathToOpen).ParseName("FILE.TXT");
Shell.Open(pathToOpen); // открываем нашу папку
// подождем 2 секунды (просто чтобы быть уверенным,
// что наша папка успела открыться)
WScript.Sleep(2000);
FolderView = ShellWindows.Item().Document;
// выделяем наш файл в только что открытой папке
//
// **************************************************
// в WinMe/XP это работает как надо -- выделяет файл,
// но в Win98 почему-то вылазит "неопознанная ошибка"
// **************************************************
//
FolderView.SelectItem(fileAsFoIT, 1|4|8|16);