![]() |
![]() |
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 | Кстати, насчёт "интересного и полезного". Например, как дать возможность пользователю выбрать на форме обработки каталог так, чтобы в момент выбора он не смог пройти в файловой системе "выше" определённого каталога? |