Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
'создаётся объект типа "IShellDispatch":
Set objShellApp = CreateObject("Shell.Application")
Не все объекты, их свойства и методы будут работать на всех версиях Windows. Подробности - см. MSDN (часто проще проверить работоспособность кода экспериментально). Устанавливайте обновления для Internet Explorer. Некоторые методы доступны или имеют смысл только в контексте HTML-документа.
При использовании свойств и методов объекта Shell, возвращающих агрегатные объекты, в VBScript желательно всегда обрабатывать исключения и проверять полученный объект на существование (сравнивать с Nothing). Объект типа "IShellDispatch" возвращается также в таких случаях:
Пример №1:
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
Set objISD = objShellApp.Application
Пример №2:
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
Set objISD = objShellApp.Parent
Пример №3:
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\")
Set objISD = objFolder.Application
Пример №4:
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\")
Set objFolderItems = objFolder.Items()
Set objISD = objFolderItems.Application
Пример №5:
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\")
Set objFolderItem = objFolder.Self
Set objISD = objFolderItem.Application
Возвращаемое значение: объект "IShellDispatch".
Замечание: только чтение.
Пример(Windows XP):
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
If objShellApp.Application.GetSetting(1) = 0 Then
MsgBox "В ""Свойствах папки"" в проводнике установлен режим ""Не показывать скрытые файлы и папки""!", vbInformation
Else
MsgBox "В ""Свойствах папки"" в проводнике установлен режим ""Показывать скрытые файлы и папки""!", vbInformation
End If
Возвращаемое значение: объект "IShellDispatch".
Замечание: только чтение.
Пример(Windows XP):
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
If objShellApp.Parent.GetSetting(1) = 0 Then
MsgBox "В ""Свойствах папки"" в проводнике установлен режим ""Не показывать скрытые файлы и папки""!", vbInformation
Else
MsgBox "В ""Свойствах папки"" в проводнике установлен режим ""Показывать скрытые файлы и папки""!", vbInformation
End If
Назначение: сворачивание всех окон рабочего стола Windows. Возвращаемого значения нет.
Параметры: нет.
Описание: вызов метода приводит к тому же эффекту, что и команда "Показать рабочий стол" ("Minimize All Windows") контекстного меню панели задач Windows или щелчок по значку "Свернуть все окна" ("Show Desktop") на панели "Быстрый запуск" ("Quick Launch") панели задач Windows.
Пример:
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
objShellApp.MinimizeAll
Назначение: восстановление всех свёрнутых окон рабочего стола Windows. Возвращаемого значения нет.
Параметры: нет.
Описание: вызов метода приводит к тому же эффекту, что и команда "Отменить Свернуть все" ("Undo Minimize All Windows") контекстного меню панели задач Windows или повторный щелчок по значку "Свернуть все окна" ("Show Desktop") на панели "Быстрый запуск" ("Quick Launch") панели задач Windows.
Пример:
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
objShellApp.MinimizeAll
WScript.Sleep 300
objShellApp.UndoMinimizeAll
Назначение: упорядочение окон рабочего стола Windows по горизонтали. Возвращаемого значения нет.
Параметры: нет.
Описание: вызов метода приводит к тому же эффекту, что и команда "Окна сверху вниз" ("Tile Windows Horizontally") контекстного меню панели задач Windows.
Пример:
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
objShellApp.TileHorizontally
Назначение: упорядочение окон рабочего стола Windows по вертикали. Возвращаемого значения нет.
Параметры: нет.
Описание: вызов метода приводит к тому же эффекту, что и команда "Окна слева направо" ("Tile Windows Vertically") контекстного меню панели задач Windows.
Пример:
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
objShellApp.TileVertically
Назначение: вызов окна "Поиск принтеров" ("Find Printers") в Active Directory с предварительным заполнением параметров поиска. Возвращаемого значения нет.
Описание: вызов метода приводит примерно к тому же эффекту, что и команда меню "Пуск"-"Поиск"-"Принтеры..." ("Start"-"Search"-"For Printers...") в Windows 2000. [/code]
Назначение: вызов конкретного приложения панели управления. Возвращаемого значения нет.
Параметры: <ИмяФайла> - имя файла конкретного приложения панели управления. Тип - строка. Пустая строка вызывает саму панель управления.
Описание: все файлы приложений панели управления имеют расширение .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 / VBA:
Set objShellApp = CreateObject("Shell.Application")
objShellApp.ControlPanelItem "desk.cpl"
objShellApp.ControlPanelItem ""
Назначение: вызов модального окна "Выбор папки". Возвращает объект "Folder".
Параметры: <Hwnd> - дескриптор родительского окна. Тип - целое число. 0 - текущее окно. <Заголовок> - пояснение для пользователя в окне "Выбор папки". Тип - строка. <Опции> - целое число (комбинация битовых флагов). Например, флаг 512 - запретить кнопку "Создать папку", 1 - не отображать Корзину, 16 - отображать EditBox для ввода полного пути с клавиатуры и т.п. Подробнее - см. MSDN. <КорневаяПапка> - необязательный параметр. Корневая папка в окне "Выбор папки". Тип - строка. Пользователь не сможет пройти в окне "Выбор папки" выше этой папки. Если параметр не указан, корневой папкой будет рабочий стол Windows.
Пример:
VB.NET / VBA:
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
Назначение: получение объекта "ShellWindows". Возвращает объект "ShellWindows".
Параметры: нет.
Пример:
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
WinCol = objShellApp.Windows().Count
MsgBox "В настоящий момент открыто окон Проводника - " & WinCol, vbInformation
Назначение: запускает указанный сервис. Возвращаемое значение - булево (число) - определяет, успешно ли завершена операция.
Параметры: <ServiceName> - строка, имя сервиса. <Persistent> - булево (число). Определяет, что сервис должен автоматически стартовать при старте системы. Если указана ложь, конфигурация сервиса не меняется.
Пример:
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
Serv = "haspnt"
If objShellApp.ServiceStart(Serv, false) = 0 Then
MsgBox "НЕ удалось запустить сервис " & Serv & "!", vbInformation
Else
MsgBox "Сервис " & Serv & " успешно запущен!", vbInformation
End If
Назначение: останавливает указанный сервис. Возвращаемое значение - булево (число) - определяет, успешно ли завершена операция.
Параметры: <ServiceName> - строка, имя сервиса. <Persistent> - булево (число). Определяет, что сервис должен автоматически стартовать при старте системы. Если указана ложь, конфигурация сервиса не меняется.
Пример:
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
Serv = "haspnt"
If objShellApp.ServiceStop(Serv, false) = 0 Then
MsgBox "НЕ удалось остановить сервис " & Serv & "!", vbInformation
Else
MsgBox "Сервис " & Serv & " успешно остановлен!", vbInformation
End If
Назначение: возвращает значение заданного ограничения по данным реестра (возвращаемое значение - число).
Параметры: <Group> - строка, наименование группы (ключа) в HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ policies. <Restriction> - строка, наименование параметра в указанной группе реестра, значение которого надо вернуть.
Описание: если параметр не найден в реестре, возвращается 0. Подробнее - см. MSDN.
Пример:
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
MsgBox objShellApp.IsRestricted("system", "dontdisplaylastusername")
Назначение: выполняет указанное действие над указанным файлом. Возвращаемого значения нет.
Параметры: <File> - строка. Имя файла. <Arguments> - строка (необязательный). Параметры для <Operation>. <Directory> - строка (необязательный). Путь к каталогу с указанным файлом. Если не указан, используется текущий каталог. <Operation> - строка (необязательный). Действие ("глагол"), которое необходимо выполнить. Если не указан, используется действие по умолчанию. <Show> - число (необязательный). Рекомендуемое состояние окна при выполнении. Запускаемое приложение может проигнорировать этот параметр. Возможные значения:
0 - скрытое окно.
1 - нормальное окно.
2 - минимизированное окно.
3 - максимизированное окно.
4 - запустить приложение с окном в том состоянии, в котором оно было последний раз. Текущее активное окно останется активным.
5 - запустить приложение с окном в текущем состоянии.
7 - минимизированное окно. Текущее активное окно останется активным.
10 - состояние окна по умолчанию для приложения.
Пример:
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
objShellApp.ShellExecute "autoexec.bat", "", "C:\", "edit", 1
Описание: метод доступен только в контексте HTML-документа.
Пример:
VB.NET / VBA:
<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>
Назначение: возвращает значение указанной глобальной установки (параметра) проводника.
Параметры: <Setting> - целое число (набор флагов), определяющее глобальную установку (параметр) проводника. Некоторые возможные значения (подробнее - см. MSDN):
1 - Показывать скрытые файлы и папки.
2 - Скрывать расширения для зарегистрированных типов файлов.
Пример (WindowsXP):
VB.NET / VBA:
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 / VBA:
Set objShellApp = CreateObject("Shell.Application")
objShellApp.ToggleDesktop
Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\")
Другой пример:
VB.NET / VBA:
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
Возвращаемое значение: объект "IShellDispatch".
Замечание: только чтение.
Пример:
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\")
If objFolder.Application.GetSetting(1)=0 Then
MsgBox "В ""Свойствах папки"" в проводнике установлен режим ""Не показывать скрытые файлы и папки""!", vbInformation
Else
MsgBox "В ""Свойствах папки"" в проводнике установлен режим ""Показывать скрытые файлы и папки""!", vbInformation
End If
Назначение: копирование файла или папки вовнутрь текущей папки. Возвращаемого значения нет.
Параметры: <Путь> - полный путь к копируемому файлу или папке (строка) или объект FolderItem. <Опции> - необязательный. Опции копирования - число (комбинация битовых флагов). Некоторые флаги (подробнее см. MSDN):
4 - Не показывать окно с прогресс-баром.
8 - Дать копируемому файлу новое имя, если файл с таким именем уже существует.
16 - Отвечать автоматически "Yes to All" в любом отображаемом диалоге.
256 - Отображать окно с прогресс-баром, но не показывать имена файлов.
4096 - Производить операции только в локальной папке. Не производить операции рекурсивно в подпапках.
9182 - Не копировать связанные файлы (например, html-файлы с их папками) как группу. Копировать только указанные файлы.
Описание: копируемый файл или папка может находиться внутри текущей папки. Вызов метода приводит к тому же эффекту, что и перетаскивание файлов в проводнике.
Пример:
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\WINDOWS")
objFolder.CopyHere("C:\AUTOEXEC.BAT")
Назначение: получение информации об элементе текущей папки. Возвращает строку.
Параметры: <Элемент> - объект FolderItem, соответствующий элементу текущей папки. <Парам> - целое число, определяющее тип информации. Возможные значения:
0 - Имя элемента.
1 - Размер элемента (только для файлов).
2 - Тип элемента.
3 - Дата и время последней модификации.
4 - Дата и время создания.
-1 - Тип элемента, дата и время последней модификации и размер элемента (только для файлов).
Описание: возвращается информация, похожая на ту, что можно увидеть в окне свойств файла (папки) в проводнике.
Пример:
VB.NET / VBA:
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
Возвращаемое значение: объект "IShellDispatch".
Замечание: только чтение.
Пример (Windows XP):
VB.NET / VBA:
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
Возвращаемое значение: объект FolderItemVerbs. Коллекция действий ("глаголов"), относящихся ко всем элементам папки.
Замечание: только чтение.
Пример:
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\")
Set objFIV = objFolder.Items().Verbs
MsgBox "Действий всего - " & objFIV.Count, vbInformation
Назначение: получение объекта FolderItem. Возвращает объект FolderItem.
Параметры: <Индекс> - необязательный. Индекс в коллекции элементов папки (отсчёт - с нуля). Если параметр опущен, возвращает объект FolderItem, соответствующий самой папке.
Пример:
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\")
MsgBox objFolder.Items().Item().Path, vbInformation
Назначение: выполнить действие операционной системы ("глагол") над всеми элементами папки (не рекурсивно). Возвращаемого значения нет.
Параметры: <Verb> - необязательный. Строка - наименование действия, которое нужно выполнить. Если не указан, выполняется действие по умолчанию. <Args> - необязательный. Строка - аргументы действия, указанного в первом параметре.
Пример:
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\")
'Попытка открыть все элементы окна "Мой компьютер"
objFolder.ParentFolder.Items().InvokeVerbEx()
'Попытка открыть все папки в корне диска C:\
objFolder.Items().InvokeVerbEx("explore")
Возвращаемое значение: объект "IShellDispatch".
Замечание: только чтение.
Пример (Windows XP):
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
Set objFolderItem = objShellApp.NameSpace("C:\").Self
If objFolderItem.Application.GetSetting(1)=0 Then
MsgBox "В ""Свойствах папки"" в проводнике установлен режим ""Не показывать скрытые файлы и папки""!"
Else
MsgBox "В ""Свойствах папки"" в проводнике установлен режим ""Показывать скрытые файлы и папки""!"
End If
Возвращаемое значение: если текущий элемент папки (объект "FolderItem") сам является папкой, возвращается объект "Folder", соответствующий этой папке.
Замечание: только чтение.
Пример:
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\")
Set objFolderItem = objFolder.ParseName("Program Files")
Set objFolder2=objFolderItem.GetFolder
MsgBox objFolder2.Self.Path
Возвращаемое значение: если текущий элемент папки (объект "FolderItem") является ярлыком, возвращается объект "ShellLinkObject", соответствующий этому ярлыку.
Замечание: только чтение.
Пример:
VB.NET / VBA:
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
Возвращаемое значение: булево (число). Определяет, является ли элемент членом файловой системы.
Замечание: только чтение.
Пример:
VB.NET / VBA:
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
Возвращаемое значение: строка - полный путь объекта.
Замечание: только чтение.
Пример:
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\")
Set objFolderItem = objFolder.ParseName("AUTOEXEC.BAT")
MsgBox objFolderItem.Path
Возвращаемое значение: целое число - размер объекта в байтах.
Замечание: только чтение.
Пример:
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\Windows")
Set objFolderItem = objFolder.ParseName("notepad.exe")
MsgBox objFolderItem.Size
Возвращаемое значение: строковое представление типа объекта. Возвращается информация, похожая на ту, что можно увидеть в окне свойств файла (папки) в проводнике.
Замечание: только чтение.
Пример:
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\")
Set objFolderItem = objFolder.ParseName("autoexec.bat")
MsgBox objFolderItem.Type
Назначение: выполнить действие операционной системы ("глагол") над элементом. Возвращаемого значения нет.
Параметры: <Verb> - необязательный. Строка - наименование действия, которое нужно выполнить. Если не указан, выполняется действие по умолчанию. <Args> - необязательный. Строка - аргументы действия, указанного в первом параметре.
Пример:
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
Set objFolderItem = objShellApp.NameSpace("C:\").Self
objFolderItem.InvokeVerbEx "explore"
Назначение: возвращает объект "FolderItemVerbs", содержащий перечень возможных действий ("глаголов") для элемента.
Параметры: нет.
Пример:
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
Set objFolderItem = objShellApp.NameSpace("C:\").Self
Set objFIV = objFolderItem.Verbs
MsgBox "Действий всего - " & objFIV.Count
Возвращаемое значение: число. Количество элементов коллекции.
Замечание: только чтение. Возвращает количество открытых окон Internet Explorer и Проводника.
Пример (Windows XP):
VB.NET / VBA:
Set objShellApp = CreateObject("Shell.Application")
Wins = objShellApp.Windows().Count
MsgBox "В настоящий момент открыто окон Проводника - " & Wins
Назначение: получение объекта WebBrowser. Возвращает объект WebBrowser.
Параметры: <Индекс> - необязательный. Индекс в коллекции окон (отсчёт - с нуля). По умолчанию - 0.
Описание: метод возвращает объект того же типа, что и оператор CreateObject("InternetExplorer.Application") или CreateObject("Shell.Explorer").
Пример:
VB.NET / VBA:
'Закрытие всех окон 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
Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\").ParentFolder.ParentFolder 'рабочий стол
Set objFolderItem = objFolder.ParseName("Paint.lnk")
Set objSLO = objFolderItem.GetLink
Возвращаемое значение: целое число. Назначенная ярлыку горячая клавиша в поле "Быстрый вызов" ("Shortcut key").
Замечание: чтение и запись.
Пример:
VB.NET / VBA:
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
Возвращаемое значение: строка. Путь к исполняемому файлу в поле "Объект" ("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
Возвращаемое значение: объект "FolderItem", соответствующий объекту, на который ссылается ярлык.
Замечание: только чтение.
Пример:
VB.NET / VBA:
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
Возвращаемое значение: число. Количество действий ("глаголов") в коллекции.
Замечание: только чтение.
Пример:
VB.NET / VBA:
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
Параметры: <Index> - порядковый номер. Отсчёт начинается с нуля.
Пример:
VB.NET / VBA:
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
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
Возвращаемое значение: строка. Имя действия ("глагола").
Замечание: только чтение.
Пример:
VB.NET / VBA:
Set objShellApp = CreateObject ("Shell.Application")
Set objFolderItem = objShellApp.NameSpace("C:\").Self
Set objFIVs = objFolderItem.Verbs()
Set objFIV = objFIVs.Item(0)
MsgBox objFIV.Name
Назначение: исполняет действие. Возвращаемого значения нет.
Параметры: нет.
Пример:
VB.NET / VBA:
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