Примеры VBS: объект Shell.Application

Тема в разделе "Изучение основ языка", создана пользователем Dragokas, 27 янв 2014.

Статус темы:
Закрыта.
  1. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.476
    Симпатии:
    4.305
    Объект Shell.Application
    Источник
    Составил: Людоговский Александр​

    Код (Text):
    Set objShellApp = CreateObject("Shell.Application")
    Содержание:
    1. Создание объекта
    2. Свойства
    2.1. Application
    2.2. Parent​
    3. Методы
    3.1. MinimizeAll
    3.2. UndoMinimizeAll
    3.3. TileHorizontally
    3.4. TileVertically
    3.5. CascadeWindows
    3.6. Explore
    3.7. Open
    3.8. NameSpace
    3.9. FileRun
    3.10. FindComputer
    3.11. FindFiles
    3.12. FindPrinter
    3.13. Help
    3.14. ShutdownWindows
    3.15. SetTime
    3.16. TrayProperties
    3.17. ControlPanelItem
    3.18. BrowseForFolder
    3.19. Windows
    3.20. CanStartStopService
    3.21. IsServiceRunning
    3.22. ServiceStart
    3.23. ServiceStop
    3.24. GetSystemInformation
    3.25. IsRestricted
    3.26. ShellExecute
    3.27. ShowBrowserBar
    3.28. AddToRecent
    3.29. ExplorerPolicy
    3.30. GetSetting
    3.31. ToggleDesktop
    3.32. WindowsSecurity​
    4. Объект Folder
    4.1. Создание объекта
    4.2. Свойства
    4.2.1. Title
    4.2.2. Self
    4.2.3. ParentFolder
    4.2.4. Application
    4.2.5. OfflineStatus​
    4.3. Методы
    4.3.1. NewFolder
    4.3.2. CopyHere
    4.3.3. MoveHere
    4.3.4. Items
    4.3.5. ParseName
    4.3.6. GetDetailsOf
    4.3.7. DismissedWebViewBarricade
    4.3.8. Synchronize​
    5. Объект FolderItems
    5.1. Создание объекта
    5.2. Свойства
    5.2.1. Application
    5.2.2. Count
    5.2.3. Verbs​
    5.3. Методы
    5.3.1. Item
    5.3.2. InvokeVerbEx
    5.3.3. Filter​
    6. Объект FolderItem
    6.1. Создание объекта
    6.2. Свойства
    6.2.1. Application
    6.2.2. GetFolder
    6.2.3. GetLink
    6.2.4. IsBrowsable
    6.2.5. IsFileSystem
    6.2.6. IsFolder
    6.2.7. IsLink
    6.2.8. ModifyDate
    6.2.9. Name
    6.2.10. Parent
    6.2.11. Path
    6.2.12. Size
    6.2.13. Type​
    6.3. Методы
    6.3.1. InvokeVerb
    6.3.2. InvokeVerbEx
    6.3.3. Verbs
    6.3.4. ExtendedProperty​
    7. Объект ShellWindows
    7.1. Создание объекта
    7.2. Свойства
    7.2.1. Count​
    7.3. Методы
    7.3.1. Item​
    8. Объект ShellLinkObject
    8.1. Создание объекта
    8.2. Свойства
    8.2.1. Arguments
    8.2.2. Description
    8.2.3. Hotkey
    8.2.4. Path
    8.2.5. ShowCommand
    8.2.6. WorkingDirectory
    8.2.7. Target​
    8.3. Методы
    8.3.1. GetIconLocation
    8.3.2. Resolve
    8.3.3. Save
    8.3.4. SetIconLocation​
    9. Объект FolderItemVerbs
    9.1. Создание объекта
    9.2. Свойства
    9.2.1. Count​
    9.3. Методы
    9.3.1. Item​
    10. Объект FolderItemVerb
    10.1. Создание объекта
    10.2. Свойства
    10.2.1. Name​
    10.3. Методы
    10.3.1. DoIt​
     
    Kиpилл нравится это.
  2. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.476
    Симпатии:
    4.305
    1. Создание объекта
    Код (vb.net):
    'создаётся объект типа "IShellDispatch":
    Set objShellApp = CreateObject("Shell.Application")
    Не все объекты, их свойства и методы будут работать на всех версиях Windows. Подробности - см. MSDN (часто проще проверить работоспособность кода экспериментально). Устанавливайте обновления для Internet Explorer. Некоторые методы доступны или имеют смысл только в контексте HTML-документа.

    При использовании свойств и методов объекта Shell, возвращающих агрегатные объекты, в VBScript желательно всегда обрабатывать исключения и проверять полученный объект на существование (сравнивать с Nothing). Объект типа "IShellDispatch" возвращается также в таких случаях:

    Пример №1:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objISD = objShellApp.Application
    Пример №2:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objISD = objShellApp.Parent
    Пример №3:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    Set objISD = objFolder.Application
    Пример №4:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    Set objFolderItems = objFolder.Items()
    Set objISD = objFolderItems.Application
    Пример №5:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    Set objFolderItem = objFolder.Self
    Set objISD = objFolderItem.Application
    2. Свойства

    2.1. Application

    Синтаксис:
    Возвращаемое значение: объект "IShellDispatch".
    Замечание: только чтение.

    Пример(Windows XP):
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    If objShellApp.Application.GetSetting(1) = 0 Then
        MsgBox "В ""Свойствах папки"" в проводнике установлен режим ""Не показывать скрытые файлы и папки""!", vbInformation
    Else
        MsgBox "В ""Свойствах папки"" в проводнике установлен режим ""Показывать скрытые файлы и папки""!", vbInformation
    End If
    2.2. Parent

    Синтаксис:
    Возвращаемое значение: объект "IShellDispatch".
    Замечание: только чтение.

    Пример(Windows XP):
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    If objShellApp.Parent.GetSetting(1) = 0 Then
        MsgBox "В ""Свойствах папки"" в проводнике установлен режим ""Не показывать скрытые файлы и папки""!", vbInformation
    Else
        MsgBox "В ""Свойствах папки"" в проводнике установлен режим ""Показывать скрытые файлы и папки""!", vbInformation
    End If
    3. Методы

    3.1. MinimizeAll

    Синтаксис:
    Назначение: сворачивание всех окон рабочего стола Windows. Возвращаемого значения нет.

    Параметры: нет.

    Описание: вызов метода приводит к тому же эффекту, что и команда "Показать рабочий стол" ("Minimize All Windows") контекстного меню панели задач Windows или щелчок по значку "Свернуть все окна" ("Show Desktop") на панели "Быстрый запуск" ("Quick Launch") панели задач Windows.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    objShellApp.MinimizeAll
    3.2. UndoMinimizeAll

    Синтаксис:
    Назначение: восстановление всех свёрнутых окон рабочего стола Windows. Возвращаемого значения нет.

    Параметры: нет.

    Описание: вызов метода приводит к тому же эффекту, что и команда "Отменить Свернуть все" ("Undo Minimize All Windows") контекстного меню панели задач Windows или повторный щелчок по значку "Свернуть все окна" ("Show Desktop") на панели "Быстрый запуск" ("Quick Launch") панели задач Windows.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    objShellApp.MinimizeAll
    WScript.Sleep 300
    objShellApp.UndoMinimizeAll
    3.3. TileHorizontally

    Синтаксис:
    Назначение: упорядочение окон рабочего стола Windows по горизонтали. Возвращаемого значения нет.

    Параметры: нет.

    Описание: вызов метода приводит к тому же эффекту, что и команда "Окна сверху вниз" ("Tile Windows Horizontally") контекстного меню панели задач Windows.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    objShellApp.TileHorizontally
    3.4. TileVertically

    Синтаксис:
    Назначение: упорядочение окон рабочего стола Windows по вертикали. Возвращаемого значения нет.

    Параметры: нет.

    Описание: вызов метода приводит к тому же эффекту, что и команда "Окна слева направо" ("Tile Windows Vertically") контекстного меню панели задач Windows.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    objShellApp.TileVertically
    3.5. CascadeWindows

    Синтаксис:
    Назначение: расположение всех несвёрнутых окон рабочего стола Windows каскадом. Возвращаемого значения нет.

    Параметры: нет.

    Описание: вызов метода приводит к тому же эффекту, что и команда "Окна каскадом" ("Cascade Windows") контекстного меню панели задач Windows.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    objShellApp.CascadeWindows
    3.6. Explore

    Синтаксис:
    Назначение: запуск проводника Windows с определённой открытой папкой. Возвращаемого значения нет.

    Параметры:
    <Path> - путь к открываемой папке. Тип - строка.

    Описание: <Path> может быть числом, определяющим одну из специальных папок Windows. Коды папок - см. описание метода "NameSpace".

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    objShellApp.Explore("C:\")
    objShellApp.Open("C:\") 'для сравнения
    3.7. Open

    Синтаксис:
    Назначение: запуск проводника Windows с определённой открытой папкой. Возвращаемого значения нет.

    Параметры:
    <Path> - путь к открываемой папке. Тип - строка.

    Описание: <Path> может быть числом, определяющим одну из специальных папок Windows. Коды папок - см. описание метода "NameSpace".

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    objShellApp.Open("C:\")
    objShellApp.Explore("C:\") 'для сравнения
    3.8. NameSpace

    Синтаксис:
    Назначение: получение объекта виртуальной папки проводника. Возвращает объект "Folder".

    Параметры:
    <Path> - путь к папке или диску. Тип - строка.

    Описание: <Path> может быть числом, определяющим одну из специальных папок Windows.

    Пример №1:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    MsgBox objFolder.Title, vbInformation
    Пример №2:
    Код (vb.net):
    'Вывод путей и заголовков всех возможных специальных папок.

    On Error Resume Next
    Set List = CreateObject("Scripting.Dictionary")
    List.Add &H1d, "ssfALTSTARTUP"
    List.Add &H1a, "ssfAPPDATA"
    List.Add &Ha, "ssfBITBUCKET"
    List.Add &H1e, "ssfCOMMONALTSTARTUP"
    List.Add &H23, "ssfCOMMONAPPDATA"
    List.Add &H19, "ssfCOMMONDESKTOPDIR"
    List.Add &H1f, "ssfCOMMONFAVORITES"
    List.Add &H17, "ssfCOMMONPROGRAMS"
    List.Add &H16, "ssfCOMMONSTARTMENU"
    List.Add &H18, "ssfCOMMONSTARTUP"
    List.Add &H3, "ssfCONTROLS"
    List.Add &H21, "ssfCOOKIES"
    List.Add &H0, "ssfDESKTOP"
    List.Add &H10, "ssfDESKTOPDIRECTORY"
    List.Add &H11, "ssfDRIVES"
    List.Add &H6, "ssfFAVORITES"
    List.Add &H14, "ssfFONTS"
    List.Add &H22, "ssfHISTORY"
    List.Add &H20, "ssfINTERNETCACHE"
    List.Add &H1c, "ssfLOCALAPPDATA"
    List.Add &H27, "ssfMYPICTURES"
    List.Add &H13, "ssfNETHOOD"
    List.Add &H12, "ssfNETWORK"
    List.Add &H5, "ssfPERSONAL"
    List.Add &H4, "ssfPRINTERS"
    List.Add &H1b, "ssfPRINTHOOD"
    List.Add &H28, "ssfPROFILE"
    List.Add &H26, "ssfPROGRAMFILES"
    List.Add &H2, "ssfPROGRAMS"
    List.Add &H8, "ssfRECENT"
    List.Add &H9, "ssfSENDTO"
    List.Add &Hb, "ssfSTARTMENU"
    List.Add &H7, "ssfSTARTUP"
    List.Add &H25, "ssfSYSTEM"
    List.Add &H15, "ssfTEMPLATES"
    List.Add &H24, "ssfWINDOWS"

    Set objShellApp = CreateObject("Shell.Application")
    ResStr = vbNullString
    For Each It In List
        Set objFolder = objShellApp.NameSpace(It)
        AddStr = List.Item(It) & " (" & objFolder.Self.Path & ") " & objFolder.Title
        If Err.Number <> 0 Then
            AddStr = List.Item(It) & " Папка не найдена"
            Err.Clear
        End If
        ResStr = ResStr & AddStr & vbCrLf
    Next
    ShowInNotepad(ResStr)

    'Процедура отображает переданную строку в блокноте
    Sub ShowInNotepad(StrToFile)
        Set FSO = CreateObject("Scripting.FileSystemObject")
        TempPath = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%TEMP%") & "\" & FSO.GetTempName
        Set TxtFile = FSO.CreateTextFile(TempPath)
        TxtFile.WriteLine(StrToFile)
        TxtFile.Close
        CreateObject("WScript.Shell").Run "notepad.exe " & TempPath
        'WScript.Sleep 1000 'Ожидание, чтобы блокнот запустился
        'FSO.DeleteFile(TempPath)
    End Sub
    3.9. FileRun

    Синтаксис:
    Назначение: вызов окна "Запуск программы" ("Run"). Возвращаемого значения нет.

    Параметры: нет.

    Описание: вызов метода приводит к тому же эффекту, что и команда меню "Пуск"-"Выполнить" ("Start"-"Run").

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    objShellApp.FileRun
    3.10. FindComputer

    Синтаксис:
    Назначение: вызов окна проводника Windows "Результаты поиска - компьютеры" ("Search Results - Computers"). Возвращаемого значения нет.

    Параметры: нет.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    objShellApp.FindComputer
    3.11. FindFiles

    Синтаксис:
    Назначение: вызов окна проводника Windows "Результаты поиска" ("Find: All Files"). Возвращаемого значения нет.

    Параметры: нет.

    Описание: вызов метода приводит к тому же эффекту, что и команда меню "Пуск"-"Поиск" ("Start"-"Find").

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    objShellApp.FindFiles
    3.12. FindPrinter

    Синтаксис:
    Назначение: вызов окна "Поиск принтеров" ("Find Printers") в Active Directory с предварительным заполнением параметров поиска. Возвращаемого значения нет.

    Параметры:
    <Name> - необязательный. Строка - имя принтера.
    <Location> - необязательный. Строка - местоположение принтера.
    <Model> - необязательный. Строка - модель принтера.

    Описание: вызов метода приводит примерно к тому же эффекту, что и команда меню "Пуск"-"Поиск"-"Принтеры..." ("Start"-"Search"-"For Printers...") в Windows 2000. [/code]
    Код (vb.net):

    Пример (Windows 2000 Server):
    [code=VB.NET]Set objShellApp = CreateObject("Shell.Application")
    objShellApp.FindPrinter "Name", "Location", "Model"
    3.13. Help

    Синтаксис:
    Назначение: вызов справки Windows. Возвращаемого значения нет.

    Параметры: нет.

    Описание: вызов метода приводит к тому же эффекту, что и команда меню "Пуск"-"Справка и поддержка" ("Start"-"Help and Support").

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    objShellApp.Help
    3.14. ShutdownWindows

    Синтаксис:
    Назначение: вызов окна выключения и перезагрузки компьютера. Возвращаемого значения нет.

    Параметры: нет.

    Описание: вызов метода приводит к тому же эффекту, что и команда меню "Пуск"-"Завершение работы" ("Start"-"Shut Down").

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    objShellApp.ShutdownWindows
    3.15. SetTime

    Синтаксис:
    Назначение: вызов окна настройки времени и даты. Возвращаемого значения нет.

    Параметры: нет.

    Описание: вызов метода приводит к тому же эффекту, что и двойной щелчок по часам в правой части панели задач Windows.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    objShellApp.SetTime
    3.16. TrayProperties

    Синтаксис:
    Назначение: вызов окна свойств панели задач Windows. Возвращаемого значения нет.

    Параметры: нет.

    Описание: вызов метода приводит к тому же эффекту, что и команда "Свойства" ("Properties") контекстного меню панели задач Windows.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    objShellApp.TrayProperties
    3.17. ControlPanelItem

    Синтаксис:
    Назначение: вызов конкретного приложения панели управления. Возвращаемого значения нет.

    Параметры:
    <ИмяФайла> - имя файла конкретного приложения панели управления. Тип - строка. Пустая строка вызывает саму панель управления.

    Описание: все файлы приложений панели управления имеют расширение .cpl. Некоторые приложения панели управления:
    access.cpl - специальные возможности.
    appwiz.cpl - установка и удаление программ.
    desk.cpl - настройка экрана.
    hdwwiz.cpl - мастер установки оборудования.
    inetcpl.cpl - свойства обозревателя.
    intl.cpl - язык и региональные стандарты.
    joy.cpl - игровые устройства.
    main.cpl - мышь.
    mmsys.cpl - звуки и аудиоустройства.
    ncpa.cpl - сетевые подключения.
    nusrmgr.cpl - учётные записи пользователей.
    odbccp32.cpl - настройка источников данных ODBC.
    powercfg.cpl - управление электропитанием.
    sysdm.cpl - свойства системы.
    telephon.cpl - телефон и модем.
    timedate.cpl - настройки времени и даты.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    objShellApp.ControlPanelItem "desk.cpl"
    objShellApp.ControlPanelItem ""
    3.18. BrowseForFolder

    Синтаксис:
    Назначение: вызов модального окна "Выбор папки". Возвращает объект "Folder".

    Параметры:
    <Hwnd> - дескриптор родительского окна. Тип - целое число. 0 - текущее окно.
    <Заголовок> - пояснение для пользователя в окне "Выбор папки". Тип - строка.
    <Опции> - целое число (комбинация битовых флагов). Например, флаг 512 - запретить кнопку "Создать папку", 1 - не отображать Корзину, 16 - отображать EditBox для ввода полного пути с клавиатуры и т.п. Подробнее - см. MSDN.
    <КорневаяПапка> - необязательный параметр. Корневая папка в окне "Выбор папки". Тип - строка. Пользователь не сможет пройти в окне "Выбор папки" выше этой папки. Если параметр не указан, корневой папкой будет рабочий стол Windows.

    Пример:
    Код (vb.net):
    On Error Resume Next
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.BrowseForFolder(0, "Выбор папки", 0, "C:\")
    MsgBox objFolder.Self.Path, vbInformation
    If Err.Number <> 0 Then
        MsgBox "Папка не выбрана!", vbInformation
    End If
    3.19. Windows

    Синтаксис:
    Назначение: получение объекта "ShellWindows". Возвращает объект "ShellWindows".

    Параметры: нет.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    WinCol = objShellApp.Windows().Count
    MsgBox "В настоящий момент открыто окон Проводника - " & WinCol, vbInformation
    3.20. CanStartStopService

    Синтаксис:
    Назначение: определяет, может ли текущий пользователь запустить/остановить указанный сервис. Возвращаемое значение - булево (число).

    Параметры:
    <ServiceName> - строка, имя сервиса.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    ServiceName = "haspnt"
    If Not objShellApp.CanStartStopService(ServiceName) Then
        MsgBox "Вы НЕ можете остановить/запустить сервис " & ServiceName & "!", vbInformation
    Else
        MsgBox "Вы можете остановить/запустить сервис " & ServiceName & "!", vbInformation
    End If
    3.21. IsServiceRunning

    Синтаксис:
    Назначение: определяет, запущен ли указанный сервис. Возвращаемое значение - булево (число).

    Параметры:
    <ServiceName> - строка, имя сервиса.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    ServiceName = "haspnt"
    If objShellApp.IsServiceRunning(ServiceName) Then
        MsgBox "Сервис " & ServiceName & " запущен!", vbInformation
    Else
        MsgBox "Сервис " & ServiceName & " НЕ запущен!", vbInformation
    End If
    3.22. ServiceStart

    Синтаксис:
    Назначение: запускает указанный сервис. Возвращаемое значение - булево (число) - определяет, успешно ли завершена операция.

    Параметры:
    <ServiceName> - строка, имя сервиса.
    <Persistent> - булево (число). Определяет, что сервис должен автоматически стартовать при старте системы. Если указана ложь, конфигурация сервиса не меняется.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Serv = "haspnt"
    If objShellApp.ServiceStart(Serv, false) = 0 Then
        MsgBox "НЕ удалось запустить сервис " & Serv & "!", vbInformation
    Else
        MsgBox "Сервис " & Serv & " успешно запущен!", vbInformation
    End If
    3.23. ServiceStop

    Синтаксис:
    Назначение: останавливает указанный сервис. Возвращаемое значение - булево (число) - определяет, успешно ли завершена операция.

    Параметры:
    <ServiceName> - строка, имя сервиса.
    <Persistent> - булево (число). Определяет, что сервис должен автоматически стартовать при старте системы. Если указана ложь, конфигурация сервиса не меняется.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Serv = "haspnt"
    If objShellApp.ServiceStop(Serv, false) = 0 Then
        MsgBox "НЕ удалось остановить сервис " & Serv & "!", vbInformation
    Else
        MsgBox "Сервис " & Serv & " успешно остановлен!", vbInformation
    End If
    3.24. GetSystemInformation

    Синтаксис:
    Назначение: возвращает некоторую системную информацию (возвращаемое значение - число).

    Параметры:
    <Name> - строка, определяет тип информации.

    Описание: подробнее - см. MSDN.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    MsgBox "DirectoryServiceAvailable = " & objShellApp.GetSystemInformation("DirectoryServiceAvailable")
    MsgBox "ProcessorLevel = " & objShellApp.GetSystemInformation("ProcessorLevel")
    MsgBox "ProcessorArchitecture = " & objShellApp.GetSystemInformation("ProcessorArchitecture")
    MsgBox "PhysicalMemoryInstalled = " & objShellApp.GetSystemInformation("PhysicalMemoryInstalled")'в байтах
    3.25. IsRestricted

    Синтаксис:
    Назначение: возвращает значение заданного ограничения по данным реестра (возвращаемое значение - число).

    Параметры:
    <Group> - строка, наименование группы (ключа) в HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ policies.
    <Restriction> - строка, наименование параметра в указанной группе реестра, значение которого надо вернуть.

    Описание: если параметр не найден в реестре, возвращается 0. Подробнее - см. MSDN.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    MsgBox objShellApp.IsRestricted("system", "dontdisplaylastusername")
    3.26. ShellExecute

    Синтаксис:
    Назначение: выполняет указанное действие над указанным файлом. Возвращаемого значения нет.

    Параметры:
    <File> - строка. Имя файла.
    <Arguments> - строка (необязательный). Параметры для <Operation>.
    <Directory> - строка (необязательный). Путь к каталогу с указанным файлом. Если не указан, используется текущий каталог.
    <Operation> - строка (необязательный). Действие ("глагол"), которое необходимо выполнить. Если не указан, используется действие по умолчанию.
    <Show> - число (необязательный). Рекомендуемое состояние окна при выполнении. Запускаемое приложение может проигнорировать этот параметр. Возможные значения:
    0 - скрытое окно.
    1 - нормальное окно.
    2 - минимизированное окно.
    3 - максимизированное окно.
    4 - запустить приложение с окном в том состоянии, в котором оно было последний раз. Текущее активное окно останется активным.
    5 - запустить приложение с окном в текущем состоянии.
    7 - минимизированное окно. Текущее активное окно останется активным.
    10 - состояние окна по умолчанию для приложения.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    objShellApp.ShellExecute "autoexec.bat", "", "C:\", "edit", 1
    3.27. ShowBrowserBar

    Синтаксис:
    Назначение: открывает или закрывает указанную панель обозревателя. Возвращает true в случае успеха, и false в случае неудачи.

    Параметры:
    <CLSID> - строка. Идентификатор класса (CLSID) панели обозревателя. Некоторые возможные значения:
    Favorites - {EFA24E61-B078-11d0-89E4-00C04FC9E26E}
    Folders - {EFA24E64-B078-11d0-89E4-00C04FC9E26E}
    History - {EFA24E62-B078-11d0-89E4-00C04FC9E26E}
    Search - {30D02401-6A81-11d0-8274-00C04FD5AE38}
    <Show> - булево. True - показать, false - спрятать панель.

    Описание: метод доступен только в контексте HTML-документа.

    Пример:
    Код (vb.net):
    <script language="VBScript">
        function fnShowBrowserBarVB()
            set objShell = CreateObject("Shell.Application")
            bReturn = objShell.ShowBrowserBar("{EFA24E61-B078-11d0-89E4-00C04FC9E26E}", true)
            set objShell = nothing
        end function
    </script>
    3.28. AddToRecent

    Синтаксис:
    Назначение: помещает ярлык на указанный файл в папку "Недавних документов" ("Recent") текущего пользователя. Возвращаемого значения нет.

    Параметры:
    <File> - строка. Путь к файлу.
    <Category> - строка (необязательный). Имя категории, в которую помещается файл.

    Пример (WindowsXP):
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    objShellApp.AddToRecent "C:\MyFile.txt"
    3.29. ExplorerPolicy

    Синтаксис:
    Назначение: возвращает значение указанной Internet Explorer policy.

    Параметры:
    <PolicyName> - строка. Имя Internet Explorer policy.

    Описание: WindowsXP и выше.

    3.30. GetSetting

    Синтаксис:
    Назначение: возвращает значение указанной глобальной установки (параметра) проводника.

    Параметры:
    <Setting> - целое число (набор флагов), определяющее глобальную установку (параметр) проводника. Некоторые возможные значения (подробнее - см. MSDN):
    1 - Показывать скрытые файлы и папки.
    2 - Скрывать расширения для зарегистрированных типов файлов.

    Пример (WindowsXP):
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    If Not objShellApp.GetSetting(2) Then
        MsgBox "В ""Свойствах папки"" в проводнике установлен режим " & _
            """Скрывать расширения для зарегистрированных типов файлов""!", vbInformation
    Else
        MsgBox "В ""Свойствах папки"" в проводнике снят режим " & _
            """Скрывать расширения для зарегистрированных типов файлов""!", vbInformation
    End If
    3.31. ToggleDesktop

    Синтаксис:
    Назначение: сворачивает или разворачивает все окна на рабочем столе. Возвращаемого значения нет.

    Параметры: нет.

    Описание: имитирует нажатие на значок "Свернуть все окна" в панели "Быстрый запуск" ("Quick launch").

    Пример (WindowsXP):
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    objShellApp.ToggleDesktop
    3.32. WindowsSecurity

    Синтаксис:
    Назначение: имитирует нажатие CTRL+ALT+DELETE при использовании соединения Microsoft Terminal Server. Возвращаемого значения нет.

    Параметры: нет.
     
    Последнее редактирование: 27 янв 2014
    Kиpилл нравится это.
  3. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.476
    Симпатии:
    4.305
    4. Объект Folder

    4.1. Создание объекта

    Объект виртуальной папки проводника.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    Другой пример:
    Код (vb.net):
    On Error Resume Next
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.BrowseForFolder(0, "Выбор папки", 0, "C:\")
    MsgBox objFolder.Self.Path, vbInformation
    If Err.Number <> 0 Then
        MsgBox "Папка не выбрана!", vbInformation
    End If
    4.2. Свойства

    4.2.1. Title

    Синтаксис:
    Возвращаемое значение: строка - заголовок папки с соблюдением регистра букв. Конструкция:
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\windows")
    MsgBox objFolder.Title, vbInformation

    выведет строку "WINDOWS".

    Конструкция:
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    MsgBox objFolder.Title, vbInformation

    выведет строку "Локальный диск (C:)".
    Замечание: только чтение.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    MsgBox objFolder.Title, vbInformation
    4.2.2. Self

    Синтаксис:
    Возвращаемое значение: объект FolderItem, соответствующий текущей папке. Аналогично вызову ".Items().Item()".
    Замечание: только чтение.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    MsgBox objFolder.Self.Path, vbInformation
    MsgBox objFolder.Items().Item().Path, vbInformation
    4.2.3. ParentFolder

    Синтаксис:
    Возвращаемое значение: объект "Folder" родительской папки.
    Замечание: только чтение.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    MsgBox objFolder.ParentFolder.Title, vbInformation
    MsgBox objFolder.ParentFolder.ParentFolder.Title, vbInformation
    4.2.4. Application

    Синтаксис:
    Возвращаемое значение: объект "IShellDispatch".
    Замечание: только чтение.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    If objFolder.Application.GetSetting(1)=0 Then
        MsgBox "В ""Свойствах папки"" в проводнике установлен режим ""Не показывать скрытые файлы и папки""!", vbInformation
    Else
        MsgBox "В ""Свойствах папки"" в проводнике установлен режим ""Показывать скрытые файлы и папки""!", vbInformation
    End If
    4.2.5. OfflineStatus

    Синтаксис:
    Возвращаемое значение: Offline status текущей папки. Тип - целое число.
    Замечание: только чтение.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("\\server\share\folder")
    MsgBox objFolder.Self.Path & " статус - " & objFolder.OfflineStatus
    Set objFolder = objShellApp.NameSpace("C:\")
    MsgBox objFolder.Self.Path & " статус - " & objFolder.OfflineStatus
    4.3. Методы

    4.3.1. NewFolder

    Синтаксис:
    Назначение: создание новой папки внутри текущей. Возвращаемого значения нет.

    Параметры:
    <Имя> - имя создаваемой папки. Тип - строка.
    <Опции> - необязательный. В настоящее время не используется.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    objFolder.NewFolder("Моя новая папка")
    4.3.2. CopyHere

    Синтаксис:
    Назначение: копирование файла или папки вовнутрь текущей папки. Возвращаемого значения нет.

    Параметры:
    <Путь> - полный путь к копируемому файлу или папке (строка) или объект FolderItem.
    <Опции> - необязательный. Опции копирования - число (комбинация битовых флагов). Некоторые флаги (подробнее см. MSDN):
    4 - Не показывать окно с прогресс-баром.
    8 - Дать копируемому файлу новое имя, если файл с таким именем уже существует.
    16 - Отвечать автоматически "Yes to All" в любом отображаемом диалоге.
    256 - Отображать окно с прогресс-баром, но не показывать имена файлов.
    4096 - Производить операции только в локальной папке. Не производить операции рекурсивно в подпапках.
    9182 - Не копировать связанные файлы (например, html-файлы с их папками) как группу. Копировать только указанные файлы.

    Описание: копируемый файл или папка может находиться внутри текущей папки. Вызов метода приводит к тому же эффекту, что и перетаскивание файлов в проводнике.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\WINDOWS")
    objFolder.CopyHere("C:\AUTOEXEC.BAT")
    4.3.3. MoveHere

    Синтаксис:
    Назначение: перенос файла или папки вовнутрь текущей папки. Возвращаемого значения нет.

    Параметры: полностью аналогично методу "CopyHere". См. описание метода "CopyHere".

    Описание: полностью аналогично методу "CopyHere". См. описание метода "CopyHere".

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\WINDOWS")
    objFolder.MoveHere("C:\AUTOEXEC.BAT")
    4.3.4. Items

    Синтаксис:
    Назначение: получение объекта FolderItems. Возвращает объект FolderItems.

    Параметры: нет.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    Set objItems = objFolder.Items()
    TotalCount = objItems.Count
    MsgBox "В папке """ & objFolder.Title & """ элементов всего - " & TotalCount, vbInformation
    4.3.5. ParseName

    Синтаксис:
    Назначение: получение объекта FolderItem, соответствующего элементу текущей папки. Возвращает объект FolderItem.

    Параметры:
    <Имя> - Имя получаемого элемента папки. Тип - строка.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    Set objItem = objFolder.ParseName("Program Files")
    MsgBox objItem.Path, vbInformation
    4.3.6. GetDetailsOf

    Синтаксис:
    Назначение: получение информации об элементе текущей папки. Возвращает строку.

    Параметры:
    <Элемент> - объект FolderItem, соответствующий элементу текущей папки.
    <Парам> - целое число, определяющее тип информации. Возможные значения:
    0 - Имя элемента.
    1 - Размер элемента (только для файлов).
    2 - Тип элемента.
    3 - Дата и время последней модификации.
    4 - Дата и время создания.
    -1 - Тип элемента, дата и время последней модификации и размер элемента (только для файлов).

    Описание: возвращается информация, похожая на ту, что можно увидеть в окне свойств файла (папки) в проводнике.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")

    Set objFolder = objShellApp.NameSpace("C:\Program Files")
    Set objItem = objFolder.Self
    strResult = vbNullString
    strResult = strResult & "Информация об объекте """ & objItem.Path & """:" & vbCrLf
    For i=-1 To 4
        strResult = strResult & i & " - " & objFolder.GetDetailsOf(objItem, i) & vbCrLf
    Next
    MsgBox strResult, vbInformation

    Set objFolder = objShellApp.NameSpace("C:\")
    Set objItem = objFolder.ParseName("AUTOEXEC.BAT")
    strResult = vbNullString
    strResult = strResult & "Информация об объекте """ & objItem.Path & """:" & vbCrLf
    For i=-1 To 4
        strResult = strResult & i & " - " & objFolder.GetDetailsOf(objItem, i) & vbCrLf
    Next
    MsgBox strResult, vbInformation
    4.3.7. DismissedWebViewBarricade

    Синтаксис:
    Назначение: см. MSDN. Возвращаемого значения нет.

    Параметры: нет.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\WINDOWS")
    objFolder.DismissedWebViewBarricade
    4.3.8. Synchronize

    Синтаксис:
    Назначение: синхронизирует все offline-файлы. Возвращаемого значения нет.

    Параметры: нет.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("\\server\share\folder")
    objFolder.Synchronize
     
  4. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.476
    Симпатии:
    4.305
    5. Объект FolderItems

    5.1. Создание объекта

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    Set objItems = objFolder.Items()
    5.2. Свойства

    5.2.1. Application

    Синтаксис:
    Возвращаемое значение: объект "IShellDispatch".
    Замечание: только чтение.

    Пример (Windows XP):
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    Set objItems = objFolder.Items()
    Set objShellDispatch = objItems.Application
    If objShellDispatch.GetSetting(1)=0 Then
        MsgBox "В ""Свойствах папки"" в проводнике установлен режим ""Не показывать скрытые файлы и папки""!"
    Else
        MsgBox "В ""Свойствах папки"" в проводнике установлен режим ""Показывать скрытые файлы и папки""!"
    End If
    5.2.2. Count

    Синтаксис:
    Возвращаемое значение: число. Количество элементов коллекции - элементов папки.
    Замечание: только чтение.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    Set objItems = objFolder.Items()
    Count = objItems.Count
    MsgBox "В папке """ & objFolder.Self.Path & """ количество элементов - " & Count
    5.2.3. Verbs

    Синтаксис:
    Возвращаемое значение: объект FolderItemVerbs. Коллекция действий ("глаголов"), относящихся ко всем элементам папки.
    Замечание: только чтение.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    Set objFIV = objFolder.Items().Verbs
    MsgBox "Действий всего - " & objFIV.Count, vbInformation
    5.3. Методы

    5.3.1. Item

    Синтаксис:
    Назначение: получение объекта FolderItem. Возвращает объект FolderItem.

    Параметры:
    <Индекс> - необязательный. Индекс в коллекции элементов папки (отсчёт - с нуля). Если параметр опущен, возвращает объект FolderItem, соответствующий самой папке.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    MsgBox objFolder.Items().Item().Path, vbInformation
    5.3.2. InvokeVerbEx

    Синтаксис:
    Назначение: выполнить действие операционной системы ("глагол") над всеми элементами папки (не рекурсивно). Возвращаемого значения нет.

    Параметры:
    <Verb> - необязательный. Строка - наименование действия, которое нужно выполнить. Если не указан, выполняется действие по умолчанию.
    <Args> - необязательный. Строка - аргументы действия, указанного в первом параметре.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    'Попытка открыть все элементы окна "Мой компьютер"
    objFolder.ParentFolder.Items().InvokeVerbEx()
    'Попытка открыть все папки в корне диска C:\
    objFolder.Items().InvokeVerbEx("explore")
    5.3.3. Filter

    Синтаксис:
    Назначение: устанавливает для элементов папки фильтр с использованием групповых символов. Возвращаемого значения нет.

    Параметры:
    <Flags> - набор флагов фильтрации. Некоторые значения (подробнее - см. MSDN):
    32 - учитывать папки.
    64 - учитывать не папки.
    128 - учитывать скрытые элементы.
    <Filter> - строка фильтра.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    Set objFolderItems = objFolder.Items()
    MsgBox "На диске С:\ элементов - " & objFolderItems.Count, vbInformation
    objFolderItems.Filter 32+64+128, "*"
    MsgBox "На диске С:\ элементов всего (со скрытыми) - " & objFolderItems.Count
    objFolderItems.Filter 64+128, "*.sys"
    MsgBox "На диске С:\ sys-файлов всего (со скрытыми) - " & objFolderItems.Count
    'Такая конструкция скорее всего откроет единственную папку "Program Files".
    objFolderItems.Filter 32, "*Files*"
    objFolderItems.InvokeVerbEx "explore"
     
  5. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.476
    Симпатии:
    4.305
    6. Объект FolderItem

    6.1. Создание объекта

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    MsgBox objFolder.Self.Path, vbInformation
    MsgBox objFolder.Items().Item().Path, vbInformation
    6.2. Свойства

    6.2.1. Application

    Синтаксис:
    Возвращаемое значение: объект "IShellDispatch".
    Замечание: только чтение.

    Пример (Windows XP):
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolderItem = objShellApp.NameSpace("C:\").Self
    If objFolderItem.Application.GetSetting(1)=0 Then
        MsgBox "В ""Свойствах папки"" в проводнике установлен режим ""Не показывать скрытые файлы и папки""!"
    Else
        MsgBox "В ""Свойствах папки"" в проводнике установлен режим ""Показывать скрытые файлы и папки""!"
    End If
    6.2.2. GetFolder

    Синтаксис:
    Возвращаемое значение: если текущий элемент папки (объект "FolderItem") сам является папкой, возвращается объект "Folder", соответствующий этой папке.
    Замечание: только чтение.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    Set objFolderItem = objFolder.ParseName("Program Files")
    Set objFolder2=objFolderItem.GetFolder
    MsgBox objFolder2.Self.Path
    6.2.3. GetLink

    Синтаксис:
    Возвращаемое значение: если текущий элемент папки (объект "FolderItem") является ярлыком, возвращается объект "ShellLinkObject", соответствующий этому ярлыку.
    Замечание: только чтение.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\").ParentFolder.ParentFolder 'рабочий стол
    Set objFolderItem = objFolder.ParseName("FileName.lnk")
    Set objSLO = objFolderItem.GetLink
    MsgBox objSLO.WorkingDirectory
    6.2.4. IsBrowsable

    Синтаксис:
    Возвращаемое значение: булево (число). Подробнее - см. MSDN.
    Замечание: только чтение.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolderItem = objShellApp.NameSpace("C:\Windows").Self
    MsgBox objFolderItem.IsBrowsable
    Set objFolderItem = objShellApp.NameSpace("http://small.h12.ru").Self
    MsgBox objFolderItem.IsBrowsable
    6.2.5. IsFileSystem

    Синтаксис:
    Возвращаемое значение: булево (число). Определяет, является ли элемент членом файловой системы.
    Замечание: только чтение.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolderItem = objShellApp.NameSpace("C:\").Self
    MsgBox "Папка """ & objFolderItem.Name & """ является членом файловой системы = " & objFolderItem.IsFileSystem
    Set objFolderItem = objShellApp.NameSpace("C:\").ParentFolder.Self
    MsgBox "Папка """ & objFolderItem.Name & """ является членом файловой системы = " & objFolderItem.IsFileSystem
    Set objFolderItem = objShellApp.NameSpace("C:\").ParentFolder.ParentFolder.Self
    MsgBox "Папка """ & objFolderItem.Name & """ является членом файловой системы = " & objFolderItem.IsFileSystem
    6.2.6. IsFolder

    Синтаксис:
    Возвращаемое значение: булево (число). Определяет, является ли элемент папкой.
    Замечание: только чтение.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolderItem = objShellApp.NameSpace("C:\").Self
    MsgBox "Объект """ & objFolderItem.Name & """ является папкой = " & objFolderItem.IsFolder
    Set objFolderItem = objShellApp.NameSpace("C:\").ParentFolder.Self
    MsgBox "Объект """ & objFolderItem.Name & """ является папкой = " & objFolderItem.IsFolder
    6.2.7. IsLink

    Синтаксис:
    Возвращаемое значение: булево (число). Определяет, является ли элемент ярлыком.
    Замечание: только чтение.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\").ParentFolder.ParentFolder 'рабочий стол
    Set objFolderItem = objFolder.ParseName("МойЯрлык.lnk")
    MsgBox "Объект """ & objFolderItem.Name & """ является ярлыком = " & objFolderItem.IsLink
    6.2.8. ModifyDate

    Синтаксис:
    Возвращаемое значение: строка. Содержит дату и время последней модификации объекта.
    Замечание: чтение и запись.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\Windows")
    Set objFolderItem = objFolder.ParseName("Notepad.exe")
    MsgBox objFolderItem.ModifyDate
    objFolderItem.ModifyDate = "20.10.05 6:05:00 PM"
    Set objFolderItem = objFolder.ParseName("Notepad.exe")
    MsgBox objFolderItem.ModifyDate
    6.2.9. Name

    Синтаксис:
    Возвращаемое значение: строка. Содержит имя объекта.
    Замечание: чтение и запись.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    Set objFolderItem = objFolder.ParseName("Autoexec.bat")
    MsgBox objFolderItem.Name
    objFolderItem.Name = "TEST.BAT"
    MsgBox objFolderItem.Name
    6.2.10. Parent

    Синтаксис:
    Возвращаемое значение: объект "Folder" родительской папки.
    Замечание: только чтение.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolderItem = objShellApp.NameSpace("C:\").Self
    MsgBox objFolderItem.Parent.Self.Name
    6.2.11. Path

    Синтаксис:
    Возвращаемое значение: строка - полный путь объекта.
    Замечание: только чтение.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    Set objFolderItem = objFolder.ParseName("AUTOEXEC.BAT")
    MsgBox objFolderItem.Path
    6.2.12. Size

    Синтаксис:
    Возвращаемое значение: целое число - размер объекта в байтах.
    Замечание: только чтение.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\Windows")
    Set objFolderItem = objFolder.ParseName("notepad.exe")
    MsgBox objFolderItem.Size
    6.2.13. Type

    Синтаксис:
    Возвращаемое значение: строковое представление типа объекта. Возвращается информация, похожая на ту, что можно увидеть в окне свойств файла (папки) в проводнике.
    Замечание: только чтение.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    Set objFolderItem = objFolder.ParseName("autoexec.bat")
    MsgBox objFolderItem.Type
    6.3. Методы

    6.3.1. InvokeVerb

    Синтаксис:
    Назначение: исполняет указанное действие ("глагол") над элементом. Возвращаемого значения нет.

    Параметры:
    <Действие> - необязательный. Строка - наименование действия. Если не указан, используется действие по умолчанию.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolderItem = objShellApp.NameSpace("C:\").Self
    objFolderItem.InvokeVerb 'open
    objFolderItem.InvokeVerb "explore"
    6.3.2. InvokeVerbEx

    Синтаксис:
    Назначение: выполнить действие операционной системы ("глагол") над элементом. Возвращаемого значения нет.

    Параметры:
    <Verb> - необязательный. Строка - наименование действия, которое нужно выполнить. Если не указан, выполняется действие по умолчанию.
    <Args> - необязательный. Строка - аргументы действия, указанного в первом параметре.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolderItem = objShellApp.NameSpace("C:\").Self
    objFolderItem.InvokeVerbEx "explore"
    6.3.3. Verbs

    Синтаксис:
    Назначение: возвращает объект "FolderItemVerbs", содержащий перечень возможных действий ("глаголов") для элемента.

    Параметры: нет.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolderItem = objShellApp.NameSpace("C:\").Self
    Set objFIV = objFolderItem.Verbs
    MsgBox "Действий всего - " & objFIV.Count
    6.3.4. ExtendedProperty

    Синтаксис:
    Назначение: возвращает строку, содержащую значение указанного дополнительного свойства элемента.

    Параметры:
    <PropName> - строка. Имя свойства.

    Описание: может быть актуально, например, для документов Microsoft Office, которые обладают дополнительными свойствами. [/code]
    Код (vb.net):

     Пример:
    [code=VB.NET]Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    Set objFolderItem = objFolder.ParseName("МойДокумент.doc")
    MsgBox objFolderItem.ExtendedProperty("DocTitle")
    MsgBox objFolderItem.ExtendedProperty("DocAuthor")
     
  6. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.476
    Симпатии:
    4.305
    7. Объект ShellWindows

    7.1. Создание объекта

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objShellWindows = objShellApp.Windows()
    7.2. Свойства

    7.2.1. Count

    Синтаксис:
    Возвращаемое значение: число. Количество элементов коллекции.
    Замечание: только чтение. Возвращает количество открытых окон Internet Explorer и Проводника.

    Пример (Windows XP):
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Wins = objShellApp.Windows().Count
    MsgBox "В настоящий момент открыто окон Проводника - " & Wins
    7.3. Методы

    7.3.1. Item

    Синтаксис:
    Назначение: получение объекта WebBrowser. Возвращает объект WebBrowser.

    Параметры:
    <Индекс> - необязательный. Индекс в коллекции окон (отсчёт - с нуля). По умолчанию - 0.

    Описание: метод возвращает объект того же типа, что и оператор CreateObject("InternetExplorer.Application") или CreateObject("Shell.Explorer").

    Пример:
    Код (vb.net):
    'Закрытие всех окон Explorer'а
    Set objShellApp = CreateObject("Shell.Application")
    Set objShellWin = objShellApp.Windows
    MsgBox "Окон Explorer'а всего - " & objShellWin.Count
    For i=0 To objShellWin.Count-1
        objShellWin.Item(i).Quit
    Next
     
  7. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.476
    Симпатии:
    4.305
    8. Объект ShellLinkObject

    8.1. Создание объекта

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\").ParentFolder.ParentFolder 'рабочий стол
    Set objFolderItem = objFolder.ParseName("Paint.lnk")
    Set objSLO = objFolderItem.GetLink
    8.2. Свойства

    8.2.1. Arguments

    Синтаксис:
    Возвращаемое значение: строка. Параметры командной строки в поле "Объект" ("Target").

    Замечание: чтение и запись.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\").ParentFolder.ParentFolder 'рабочий стол
    Set objFolderItem = objFolder.ParseName("Paint.lnk")
    Set objSLO=objFolderItem.GetLink
    MsgBox objSLO.Arguments
    objSLO.Arguments = """C:\WINDOWS\Пузыри.bmp"""
    objSLO.Save
    MsgBox objSLO.Arguments
    8.2.2. Description

    Синтаксис:
    Возвращаемое значение: строка. Описание в поле "Комментарий" ("Comment").
    Замечание: чтение и запись.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\").ParentFolder.ParentFolder 'рабочий стол
    Set objFolderItem = objFolder.ParseName("Paint.lnk")
    Set objSLO = objFolderItem.GetLink
    MsgBox objSLO.Description
    objSLO.Description = "Просто ярлычок"
    objSLO.Save
    MsgBox objSLO.Description
    8.2.3. Hotkey

    Синтаксис:
    Возвращаемое значение: целое число. Назначенная ярлыку горячая клавиша в поле "Быстрый вызов" ("Shortcut key").
    Замечание: чтение и запись.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\").ParentFolder.ParentFolder 'рабочий стол
    Set objFolderItem = objFolder.ParseName("Paint.lnk")
    Set objSLO = objFolderItem.GetLink
    MsgBox objSLO.Hotkey
    objSLO.Hotkey = Asc("Q")+1536 'Ctrl+Alt+Q (в "Asc" здесь будут правильно работать заглавные лат. буквы и цифры)
    objSLO.Save
    MsgBox objSLO.Hotkey
    8.2.4. Path

    Синтаксис:
    Возвращаемое значение: строка. Путь к исполняемому файлу в поле "Объект" ("Target").
    Замечание: чтение и запись.
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\").ParentFolder.ParentFolder 'рабочий стол
    Set objFolderItem = objFolder.ParseName("Paint.lnk")
    Set objSLO=objFolderItem.GetLink
    MsgBox objSLO.Path
    objSLO.Path = "%SystemRoot%\System32\mspaint.exe" 'без дополнительных кавычек!
    objSLO.Save
    MsgBox objSLO.Path

    8.2.5. ShowCommand

    Синтаксис:
    Возвращаемое значение: целое число. Тип окна в поле "Окно" ("Run").
    Замечание: чтение и запись.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\").ParentFolder.ParentFolder 'рабочий стол
    Set objFolderItem = objFolder.ParseName("Paint.lnk")
    Set objSLO = objFolderItem.GetLink
    MsgBox objSLO.ShowCommand
    'objSLO.ShowCommand=1 'normal window
    objSLO.ShowCommand=7 'minimized window
    'objSLO.ShowCommand=3 'maximized window
    objSLO.Save
    MsgBox objSLO.ShowCommand
    8.2.6. WorkingDirectory

    Синтаксис:
    Возвращаемое значение: строка. Путь к рабочему каталогу в поле "Рабочая папка".
    Замечание: чтение и запись.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder=objShellApp.NameSpace("C:\").ParentFolder.ParentFolder 'рабочий стол
    Set objFolderItem = objFolder.ParseName("Paint.lnk")
    Set objSLO = objFolderItem.GetLink
    MsgBox objSLO.WorkingDirectory
    objSLO.WorkingDirectory = "C:\"
    objSLO.Save
    MsgBox objSLO.WorkingDirectory
    8.2.7. Target

    Синтаксис:
    Возвращаемое значение: объект "FolderItem", соответствующий объекту, на который ссылается ярлык.
    Замечание: только чтение.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\").ParentFolder.ParentFolder 'рабочий стол
    Set objFolderItem = objFolder.ParseName("Paint.lnk")
    Set objSLO = objFolderItem.GetLink
    MsgBox objSLO.Target.Size
    8.3. Методы

    8.3.1. GetIconLocation

    Синтаксис:
    Назначение: возвращает индекс иконки ярлыка в файле, указанном в Path (целое число).

    Параметры:
    <Path> - полный путь к файлу, который содержит иконку ярлыка.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\").ParentFolder.ParentFolder 'рабочий стол
    Set objFolderItem = objFolder.ParseName("Paint.lnk")
    Set objSLO=objFolderItem.GetLink
    MsgBox "Индекс иконки - " & objSLO.GetIconLocation("%SystemRoot%\System32\mspaint.exe")
    8.3.2. Resolve

    Синтаксис:
    Назначение: пытается найти объект, на который ссылается ярлык, если этот объект был перемещён или переименован. Возвращаемого значения нет.

    Параметры:
    <Flags> - комбинация флагов, параметры восстановления. Подробнее - см. MSDN.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\").ParentFolder.ParentFolder 'рабочий стол
    Set objFolderItem = objFolder.ParseName("Paint.lnk")
    Set objSLO = objFolderItem.GetLink
    MsgBox objSLO.Path
    objSLO.Path = "%SystemRoot%\System32\m_s_p_a_i_n_t.exe"
    objSLO.Save
    MsgBox objSLO.Path
    objSLO.Resolve(1)
    objSLO.Save
    MsgBox objSLO.Path
    8.3.3. Save

    Синтаксис:
    Назначение: сохраняет все произведённые изменения ярлыка. Возвращаемого значения нет.

    Параметры:
    <File> - строка (необязательный). Полный путь к файлу ярлыка. Если не указан, сохраняется текущий объект.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\").ParentFolder.ParentFolder 'рабочий стол
    Set objFolderItem = objFolder.ParseName("Paint.lnk")
    Set objSLO = objFolderItem.GetLink
    objSLO.Save objFolder.Self.Path & "\_Paint.lnk" 'копирование ярлыка
    8.3.4. SetIconLocation

    Синтаксис:
    Назначение: устанавливает новую иконку для ярлыка. Возвращаемого значения нет.

    Параметры:
    <Path> - строка. Полный путь к файлу, содержащему иконку.
    <Index> - целое число. Индекс иконки в файле.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\").ParentFolder.ParentFolder 'рабочий стол
    Set objFolderItem = objFolder.ParseName("Paint.lnk")
    Set objSLO = objFolderItem.GetLink
    objSLO.SetIconLocation "C:\WINDOWS\notepad.exe", 0
    objSLO.Save
     
  8. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.476
    Симпатии:
    4.305
    9. Объект FolderItemVerbs

    9.1. Создание объекта

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolderItem = objShellApp.NameSpace("C:\").Self
    Set objFIVs = objFolderItem.Verbs()
    Другой пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.NameSpace("C:\")
    Set objFIVs = objFolder.Items().Verbs
    9.2. Свойства

    9.2.1. Count

    Синтаксис:
    Возвращаемое значение: число. Количество действий ("глаголов") в коллекции.
    Замечание: только чтение.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolderItem = objShellApp.NameSpace("C:\").Self
    Set objFIVs = objFolderItem.Verbs()
    MsgBox objFIVs.Count
    Set objFolder = objShellApp.NameSpace("C:\")
    Set objFIVs = objFolder.Items().Verbs
    MsgBox objFIVs.Count
    9.3. Методы

    9.3.1. Item

    Синтаксис:
    Назначение: возвращает объект "FolderItemVerb".

    Параметры:
    <Index> - порядковый номер. Отсчёт начинается с нуля.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject ("Shell.Application")
    Set objFolderItem = objShellApp.NameSpace("C:\").Self
    Set objFIVs = objFolderItem.Verbs()
    For i=0 To objFIVs.Count - 1
        MsgBox objFIVs.Item(i).Name
    Next
     
  9. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.476
    Симпатии:
    4.305
    10. Объект FolderItemVerb

    10.1. Создание объекта


    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject ("Shell.Application")
    Set objFolderItem = objShellApp.NameSpace("C:\").Self
    Set objFIVs = objFolderItem.Verbs()
    For i=0 To objFIVs.Count - 1
        Set objFIV = objFIVs.Item(i)
    Next
    10.2. Свойства
    10.2.1. Name

    Синтаксис:
    Возвращаемое значение: строка. Имя действия ("глагола").
    Замечание: только чтение.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject ("Shell.Application")
    Set objFolderItem = objShellApp.NameSpace("C:\").Self
    Set objFIVs = objFolderItem.Verbs()
    Set objFIV = objFIVs.Item(0)
    MsgBox objFIV.Name
    10.3. Методы
    10.3.1. DoIt

    Синтаксис:
    Назначение: исполняет действие. Возвращаемого значения нет.

    Параметры: нет.

    Пример:
    Код (vb.net):
    Set objShellApp = CreateObject ("Shell.Application")
    Set objFolderItem = objShellApp.NameSpace("C:\").Self
    Set objFIVs = objFolderItem.Verbs()
    For i=0 To objFIVs.Count - 1
        Set objFIV = objFIVs.Item(i)
        If objFIV.Name = "&Открыть" Then
            objFIV.DoIt
            Exit For
        End If
    Next
     
Статус темы:
Закрыта.

Поделиться этой страницей