Перейти на главную страничку сайта (список статей, файлы для скачивания)

ФОРУМ (здесь можно обсудить эту статью, а также любые проблемы программирования на различных макроязыках и в скриптовых средах)

Описание объектов Windows Script Host, их свойств и методов

Объект Shell

Содержание:

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

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

'создаётся объект типа "IShellDispatch":
Set objShellApp = CreateObject("Shell.Application")

Не все объекты, их свойства и методы будут работать на всех версиях Windows. Подробности - см. MSDN (часто проще проверить работоспособность кода экспериментально). Устанавливайте обновления для Internet Explorer. Некоторые методы доступны или имеют смысл только в контексте HTML-документа.

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

Пример №1:

Set objShellApp = CreateObject("Shell.Application")
Set objISD = objShellApp.Application

Пример №2:

Set objShellApp = CreateObject("Shell.Application")
Set objISD = objShellApp.Parent

Пример №3:

Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\")
Set objISD = objFolder.Application

Пример №4:

Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\")
Set objFolderItems = objFolder.Items()
Set objISD = objFolderItems.Application

Пример №5:

Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\")
Set objFolderItem = objFolder.Self
Set objISD = objFolderItem.Application

2. Свойства

2.1. Application

Синтаксис:

Application

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

Замечание: только чтение.

Пример(Windows XP):

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

2.2. Parent

Синтаксис:

Parent

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

Замечание: только чтение.

Пример(Windows XP):

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

3. Методы

3.1. MinimizeAll

Синтаксис:

MinimizeAll

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

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

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

Пример:

Set objShellApp = CreateObject("Shell.Application")
objShellApp.MinimizeAll

3.2. UndoMinimizeAll

Синтаксис:

UndoMinimizeAll

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

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

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

Пример:

Set objShellApp = CreateObject("Shell.Application")
objShellApp.MinimizeAll
WScript.Sleep 300
objShellApp.UndoMinimizeAll

3.3. TileHorizontally

Синтаксис:

TileHorizontally

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

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

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

Пример:

Set objShellApp = CreateObject("Shell.Application")
objShellApp.TileHorizontally

3.4. TileVertically

Синтаксис:

TileVertically

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

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

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

Пример:

Set objShellApp = CreateObject("Shell.Application")
objShellApp.TileVertically

3.5. CascadeWindows

Синтаксис:

CascadeWindows

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

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

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

Пример:

Set objShellApp = CreateObject("Shell.Application")
objShellApp.CascadeWindows

3.6. Explore

Синтаксис:

Explore(<Path>)

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

Параметры:

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

Пример:

Set objShellApp = CreateObject("Shell.Application")
objShellApp.Explore("C:\")
objShellApp.Open("C:\") 'для сравнения

3.7. Open

Синтаксис:

Open(<Path>)

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

Параметры:

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

Пример:

Set objShellApp = CreateObject("Shell.Application")
objShellApp.Open("C:\")
objShellApp.Explore("C:\") 'для сравнения

3.8. NameSpace

Синтаксис:

NameSpace(<Path>)

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

Параметры:

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

Пример №1:

Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\")
MsgBox objFolder.Title, vbInformation

Пример №2:

'Вывод путей и заголовков всех возможных специальных папок.

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

Синтаксис:

FileRun

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

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

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

Пример:

Set objShellApp = CreateObject("Shell.Application")
objShellApp.FileRun

3.10. FindComputer

Синтаксис:

FindComputer

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

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

Пример:

Set objShellApp = CreateObject("Shell.Application")
objShellApp.FindComputer

3.11. FindFiles

Синтаксис:

FindFiles

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

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

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

Пример:

Set objShellApp = CreateObject("Shell.Application")
objShellApp.FindFiles

3.12. FindPrinter

Синтаксис:

FindPrinter(<Name>,<Location>,<Model>)

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

Параметры:

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

Пример (Windows 2000 Server):

Set objShellApp = CreateObject("Shell.Application")
objShellApp.FindPrinter "Name", "Location", "Model"

3.13. Help

Синтаксис:

Help

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

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

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

Пример:

Set objShellApp = CreateObject("Shell.Application")
objShellApp.Help

3.14. ShutdownWindows

Синтаксис:

ShutdownWindows

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

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

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

Пример:

Set objShellApp = CreateObject("Shell.Application")
objShellApp.ShutdownWindows

3.15. SetTime

Синтаксис:

SetTime

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

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

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

Пример:

Set objShellApp = CreateObject("Shell.Application")
objShellApp.SetTime

3.16. TrayProperties

Синтаксис:

TrayProperties

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

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

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

Пример:

Set objShellApp = CreateObject("Shell.Application")
objShellApp.TrayProperties

3.17. ControlPanelItem

Синтаксис:

ControlPanelItem(<ИмяФайла>)

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

Параметры:

Описание: все файлы приложений панели управления имеют расширение .cpl. Некоторые приложения панели управления:

Пример:

Set objShellApp = CreateObject("Shell.Application")
objShellApp.ControlPanelItem "desk.cpl"
objShellApp.ControlPanelItem ""

3.18. BrowseForFolder

Синтаксис:

BrowseForFolder(<Hwnd>,<Заголовок>,<Опции>,<КорневаяПапка>)

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

Параметры:

Пример:

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

Синтаксис:

Windows

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

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

Пример:

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

3.20. CanStartStopService

Синтаксис:

CanStartStopService(<ServiceName>)

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

Параметры:

Пример:

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

Синтаксис:

IsServiceRunning(<ServiceName>)

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

Параметры:

Пример:

Set objShellApp = CreateObject("Shell.Application")
ServiceName = "haspnt"
If objShellApp.IsServiceRunning(ServiceName) Then
    MsgBox "Сервис " & ServiceName & " запущен!", vbInformation
Else
    MsgBox "Сервис " & ServiceName & " НЕ запущен!", vbInformation
End If

3.22. ServiceStart

Синтаксис:

ServiceStart(<ServiceName>,<Persistent>)

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

Параметры:

Пример:

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

Синтаксис:

ServiceStop(<ServiceName>,<Persistent>)

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

Параметры:

Пример:

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

Синтаксис:

GetSystemInformation(<Name>)

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

Параметры:

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

Пример:

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

Синтаксис:

IsRestricted(<Group>,<Restriction>)

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

Параметры:

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

Пример:

Set objShellApp = CreateObject("Shell.Application")
MsgBox objShellApp.IsRestricted("system", "dontdisplaylastusername")

3.26. ShellExecute

Синтаксис:

ShellExecute(<File>,<Arguments>,<Directory>,<Operation>,<Show>)

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

Параметры:

Пример:

Set objShellApp = CreateObject("Shell.Application")
objShellApp.ShellExecute "autoexec.bat", "", "C:\", "edit", 1

3.27. ShowBrowserBar

Синтаксис:

ShowBrowserBar(<CLSID>,<Show>)

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

Параметры:

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

Пример:

<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

Синтаксис:

AddToRecent(<File>,<Category>)

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

Параметры:

Пример (WindowsXP):

Set objShellApp = CreateObject("Shell.Application")
objShellApp.AddToRecent "C:\MyFile.txt"

3.29. ExplorerPolicy

Синтаксис:

ExplorerPolicy(<PolicyName>)

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

Параметры:

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

3.30. GetSetting

Синтаксис:

GetSetting(<Setting>)

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

Параметры:

Пример (WindowsXP):

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

3.31. ToggleDesktop

Синтаксис:

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

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

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

Пример (WindowsXP):

Set objShellApp = CreateObject("Shell.Application")
objShellApp.ToggleDesktop

3.32. WindowsSecurity

Синтаксис:

WindowsSecurity

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

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

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

4. Объект Folder

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

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

Пример:

Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\")

Другой пример:

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

Синтаксис:

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:)".

Замечание: только чтение.

Пример:

Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\")
MsgBox objFolder.Title, vbInformation

4.2.2. Self

Синтаксис:

Self

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

Замечание: только чтение.

Пример:

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

Синтаксис:

ParentFolder

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

Замечание: только чтение.

Пример:

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

Синтаксис:

Application

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

Замечание: только чтение.

Пример:

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

Синтаксис:

OfflineStatus

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

Замечание: только чтение.

Пример:

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

Синтаксис:

NewFolder(<Имя>,<Опции>)

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

Параметры:

Пример:

Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\")
objFolder.NewFolder("Моя новая папка")

4.3.2. CopyHere

Синтаксис:

CopyHere(<Путь>,<Опции>)

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

Параметры:

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

Пример:

Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\WINDOWS")
objFolder.CopyHere("C:\AUTOEXEC.BAT")

4.3.3. MoveHere

Синтаксис:

MoveHere(<Путь>,<Опции>)

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

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

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

Пример:

Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\WINDOWS")
objFolder.MoveHere("C:\AUTOEXEC.BAT")

4.3.4. Items

Синтаксис:

Items

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

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

Пример:

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

Синтаксис:

ParseName(<Имя>)

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

Параметры:

Пример:

Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\")
Set objItem = objFolder.ParseName("Program Files")
MsgBox objItem.Path, vbInformation

4.3.6. GetDetailsOf

Синтаксис:

GetDetailsOf(<Элемент>,<Парам>)

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

Параметры:

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

Пример:

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

Синтаксис:

DismissedWebViewBarricade

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

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

Пример:

Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\WINDOWS")
objFolder.DismissedWebViewBarricade

4.3.8. Synchronize

Синтаксис:

Synchronize

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

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

Пример:

Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("\\server\share\folder")
objFolder.Synchronize

5. Объект FolderItems

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

Пример:

Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\")
Set objItems = objFolder.Items()

5.2. Свойства

5.2.1. Application

Синтаксис:

Application

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

Замечание: только чтение.

Пример (Windows XP):

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

Синтаксис:

Count

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

Замечание: только чтение.

Пример:

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

Синтаксис:

Verbs

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

Замечание: только чтение.

Пример:

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

Синтаксис:

Item(<Индекс>)

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

Параметры:

Пример:

Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\")
MsgBox objFolder.Items().Item().Path, vbInformation

5.3.2. InvokeVerbEx

Синтаксис:

InvokeVerbEx(<Verb>,<Args>)

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

Параметры:

Пример:

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

5.3.3. Filter

Синтаксис:

Filter(<Flags>,<Filter>)

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

Параметры:

Пример:

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"

6. Объект FolderItem

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

Пример:

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

Синтаксис:

Application

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

Замечание: только чтение.

Пример (Windows XP):

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

Синтаксис:

GetFolder

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

Замечание: только чтение.

Пример:

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

Синтаксис:

GetLink

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

Замечание: только чтение.

Пример:

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

Синтаксис:

IsBrowsable

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

Замечание: только чтение.

Пример:

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

Синтаксис:

IsFileSystem

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

Замечание: только чтение.

Пример:

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

Синтаксис:

IsFolder

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

Замечание: только чтение.

Пример:

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

Синтаксис:

IsLink

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

Замечание: только чтение.

Пример:

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

Синтаксис:

ModifyDate

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

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

Пример:

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

Синтаксис:

Name

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

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

Пример:

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

Синтаксис:

Parent

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

Замечание: только чтение.

Пример:

Set objShellApp = CreateObject("Shell.Application")
Set objFolderItem = objShellApp.NameSpace("C:\").Self
MsgBox objFolderItem.Parent.Self.Name

6.2.11. Path

Синтаксис:

Path

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

Замечание: только чтение.

Пример:

Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\")
Set objFolderItem = objFolder.ParseName("AUTOEXEC.BAT")
MsgBox objFolderItem.Path

6.2.12. Size

Синтаксис:

Size

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

Замечание: только чтение.

Пример:

Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\Windows")
Set objFolderItem = objFolder.ParseName("notepad.exe")
MsgBox objFolderItem.Size

6.2.13. Type

Синтаксис:

Type

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

Замечание: только чтение.

Пример:

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

Синтаксис:

InvokeVerb(<Действие>)

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

Параметры:

Пример:

Set objShellApp = CreateObject("Shell.Application")
Set objFolderItem = objShellApp.NameSpace("C:\").Self
objFolderItem.InvokeVerb 'open
objFolderItem.InvokeVerb "explore"

6.3.2. InvokeVerbEx

Синтаксис:

InvokeVerbEx(<Verb>,<Args>)

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

Параметры:

Пример:

Set objShellApp = CreateObject("Shell.Application")
Set objFolderItem = objShellApp.NameSpace("C:\").Self
objFolderItem.InvokeVerbEx "explore"

6.3.3. Verbs

Синтаксис:

Verbs

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

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

Пример:

Set objShellApp = CreateObject("Shell.Application")
Set objFolderItem = objShellApp.NameSpace("C:\").Self
Set objFIV = objFolderItem.Verbs
MsgBox "Действий всего - " & objFIV.Count

6.3.4. ExtendedProperty

Синтаксис:

ExtendedProperty(<PropName>)

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

Параметры:

Описание: может быть актуально, например, для документов Microsoft Office, которые обладают дополнительными свойствами.

Пример:

Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\")
Set objFolderItem = objFolder.ParseName("МойДокумент.doc")
MsgBox objFolderItem.ExtendedProperty("DocTitle")
MsgBox objFolderItem.ExtendedProperty("DocAuthor")

7. Объект ShellWindows

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

Пример:

Set objShellApp = CreateObject("Shell.Application")
Set objShellWindows = objShellApp.Windows()

7.2. Свойства

7.2.1. Count

Синтаксис:

Count

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

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

Пример (Windows XP):

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

7.3. Методы

7.3.1. Item

Синтаксис:

Item(<Индекс>)

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

Параметры:

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

Пример:

'Закрытие всех окон 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

8. Объект ShellLinkObject

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

Пример:

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

Синтаксис:

Arguments

Возвращаемое значение: строка. Параметры командной строки в поле "Объект" ("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.Arguments
objSLO.Arguments = """C:\WINDOWS\Пузыри.bmp"""
objSLO.Save
MsgBox objSLO.Arguments

8.2.2. Description

Синтаксис:

Description

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

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

Пример:

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

Синтаксис:

Hotkey

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

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

Пример:

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

Синтаксис:

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

Синтаксис:

ShowCommand

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

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

Пример:

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

Синтаксис:

WorkingDirectory

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

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

Пример:

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

Синтаксис:

Target

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

Замечание: только чтение.

Пример:

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

Синтаксис:

GetIconLocation(<Path>)

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

Параметры:

Пример:

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

Синтаксис:

Resolve(<Flags>)

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

Параметры:

Пример:

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

Синтаксис:

Save(<File>)

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

Параметры:

Пример:

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

Синтаксис:

SetIconLocation(<Path>,<Index>)

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

Параметры:

Пример:

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

9. Объект FolderItemVerbs

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

Пример:

Set objShellApp = CreateObject("Shell.Application")
Set objFolderItem = objShellApp.NameSpace("C:\").Self
Set objFIVs = objFolderItem.Verbs()

Другой пример:

Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\")
Set objFIVs = objFolder.Items().Verbs

9.2. Свойства

9.2.1. Count

Синтаксис:

Count

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

Замечание: только чтение.

Пример:

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

Синтаксис:

Item(<Index>)

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

Параметры:

Пример:

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

10. Объект FolderItemVerb

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

Пример:

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

Синтаксис:

Name

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

Замечание: только чтение.

Пример:

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

Синтаксис:

DoIt

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

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

Пример:

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

Составление - Людоговский Александр

Перейти на главную страничку сайта (список статей, файлы для скачивания)

© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.