К списку форумов К списку вопросов
Вопрос к любителям и знатокам Windows Script
Young
13.08.2004 - 17:41
Не работает такой код:
 
objShellApp=СоздатьОбъект("Shell.Application");
objFolder=objShellApp.NameSpace("C:\");
objFIV=objFolder.Items().Verbs;
Для ы=0 по objFIV.Count-1 Цикл
  Сообщить(objFIV.Item(ы).Name);
КонецЦикла;
 
Ругается так:
 
objFIV=objFolder.Items().Verbs;
{C:\TEST.ERT(4)}: Поле агрегатного объекта не обнаружено (Verbs)
 
Поля такого нет, потому что:
ТипЗначенияСтр(objFolder.Items()) = "OLE.FolderItems2"
А на самом деле должно быть:
ТипЗначенияСтр(objFolder.Items()) = "OLE.FolderItems3"
(поле Verbs есть только у FolderItems3)
 
Для "Verbs Property" у объекта "FolderItems3" в MSDN написано:
Minimum operating systems - Windows 2000
Minimum DLL version - shell32.dll version 5.0 or later
У меня: Windows 2000 Server SP4, WSH 5.6, shell32.dll version 5.0.3900.6922, и всё равно не работает!
 
Как побороть?
Рупор абсурда
1 - 13.08.2004 - 17:45
А где тут Windows Script?
Gloom
2 - 13.08.2004 - 17:45
FolderItems3 - это плод твоего воображения, а метод Verbs принадлежит объекту FolderItem, а не всей коллекции FolderItems ...
Young
3 - 13.08.2004 - 17:51
(2) Не согласен. Verbs - не метод, а свойство. и "FolderItems3" вовсе не плод моего воображения. Набери в MSDN в поиске "FolderItems3".
(1) А что есть Windows Script? (вопрос без всякого подтекста, действительно интересно).
gg
4 - 13.08.2004 - 17:57
К Windows Script относится WScript.Shell а Shell.Application никакого отношения к Windows Script не имеет.
Рупор абсурда
5 - 13.08.2004 - 17:57
Ну, уж никак не совокупность свойств и методов объекта Shell ...
(ответ без всякого подтекста, просто фигня какая-то).
Young
6 - 13.08.2004 - 18:00
(4,5) Ну ладно, а что такое (к чему имеет отношение, и как правильно назвать) Shell.Application ? Ведь это тоже Scripting, то бишь работа со скриптами?
Young
7 - 13.08.2004 - 18:15
И гроссмейстеры задумались на 2 часа... :)
Gloom
8 - 13.08.2004 - 18:20
(3)Да, действительно добавили новый объект, только, видимо, забыли информацию о версии dll обновить...
Хотя, даже, если новую версию shell найдёшь - скорее всего обломаешься. 1цэ с шелловскими коллекциями не может работать...
Рупор абсурда
9 - 13.08.2004 - 18:21
Зачем тебе оно?
Young
10 - 13.08.2004 - 18:24
(8) Пасиб за ответ. 1цэ в принципе работает с шелловскими коллекциями. Ну иногда бывает геморрой с передачей индексов в методах типа Item(<iIndex>). А вообще, MSScriptControl в таких случаях спасает на ура.
Young
11 - 13.08.2004 - 18:27
(9) А любознательный я :) А на (6) ответишь?
Рупор абсурда
12 - 13.08.2004 - 18:32
(11) Имхо, нет в этом объекте ничего интересного ..., и полезного ...
А на (6) что ответить? ...
Говоришь про Виндовс Скрипт, а сам пишешь на встроенном языке 1с ...
Это, наверно, англоязычные методы объекта тебя с толку сбили? ...
В ws тоже всё по-английски ...
Young
13 - 13.08.2004 - 18:45
(12) Насчёт интересного и полезного я сделаю для себя выводы тогда, когда разберусь со всеми методами и свойствами этого объекта. Иногда пригождаются совсем неожиданные вещи...
Почему бы не назвать "Windows Script" работу с OLE-объектами оболочки? Ведь эти объекты сделали для использования в скриптах...
Young
14 - 13.08.2004 - 18:50
Похоже, (0) будет работать только в XP. Попозже проверю...
Young
15 - 13.08.2004 - 18:55
Кстати, насчёт "интересного и полезного". Например, как дать возможность пользователю выбрать на форме обработки каталог так, чтобы в момент выбора он не смог пройти в файловой системе "выше" определённого каталога?

К списку вопросов на форуме 1C

>>