|
|||||||
Время создания: 31.07.2019 22:37
Раздел: !Закладки - VBA
Запись: xintrea/mytetra_db_adgaver_new/master/base/1520693329wq5cw9fhiv/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
Объект Shell.Application Источник
Код:
Set objShellApp = CreateObject("Shell.Application")
Содержание: 2.1. Application 3. Методы 3.1. MinimizeAll 4. Объект Folder 4.1. Создание объекта 4.2.1. Title 4.3. Методы 4.3.1. NewFolder 5. Объект FolderItems 5.1. Создание объекта 5.2.1. Application 5.3. Методы 5.3.1. Item 6. Объект FolderItem 6.1. Создание объекта 6.2.1. Application 6.3. Методы 6.3.1. InvokeVerb 7. Объект ShellWindows 7.1. Создание объекта 7.2.1. Count7.3. Методы 7.3.1. Item 8. Объект ShellLinkObject 8.1. Создание объекта 8.2.1. Arguments 8.3. Методы 8.3.1. GetIconLocation 9. Объект FolderItemVerbs 9.1. Создание объекта 9.2.1. Count9.3. Методы 9.3.1. Item 10. Объект FolderItemVerb 10.1. Создание объекта 10.2.1. Name10.3. Методы 10.3.1. DoIt
1. Создание объекта
VB.NET:
'создаётся объект типа "IShellDispatch": Set objShellApp = CreateObject("Shell.Application")
Не все объекты, их свойства и методы будут работать на всех версиях Windows. Подробности - см. MSDN (часто проще проверить работоспособность кода экспериментально). Устанавливайте обновления для Internet Explorer. Некоторые методы доступны или имеют смысл только в контексте HTML-документа.
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. Свойства
Application Возвращаемое значение: объект "IShellDispatch".
VB.NET:
Set objShellApp = CreateObject("Shell.Application") If objShellApp.Application.GetSetting(1) = 0 Then MsgBox "В ""Свойствах папки"" в проводнике установлен режим ""Не показывать скрытые файлы и папки""!", vbInformation Else MsgBox "В ""Свойствах папки"" в проводнике установлен режим ""Показывать скрытые файлы и папки""!", vbInformation End If
2.2. Parent
Parent Возвращаемое значение: объект "IShellDispatch".
VB.NET:
Set objShellApp = CreateObject("Shell.Application") If objShellApp.Parent.GetSetting(1) = 0 Then MsgBox "В ""Свойствах папки"" в проводнике установлен режим ""Не показывать скрытые файлы и папки""!", vbInformation Else MsgBox "В ""Свойствах папки"" в проводнике установлен режим ""Показывать скрытые файлы и папки""!", vbInformation End If
3. Методы
MinimizeAll Назначение: сворачивание всех окон рабочего стола Windows. Возвращаемого значения нет.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") objShellApp.MinimizeAll
3.2. UndoMinimizeAll
UndoMinimizeAll Назначение: восстановление всех свёрнутых окон рабочего стола Windows. Возвращаемого значения нет.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") objShellApp.MinimizeAll WScript.Sleep 300 objShellApp.UndoMinimizeAll
3.3. TileHorizontally
TileHorizontally Назначение: упорядочение окон рабочего стола Windows по горизонтали. Возвращаемого значения нет.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") objShellApp.TileHorizontally
3.4. TileVertically
TileVertically Назначение: упорядочение окон рабочего стола Windows по вертикали. Возвращаемого значения нет.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") objShellApp.TileVertically
3.5. CascadeWindows
CascadeWindows Назначение: расположение всех несвёрнутых окон рабочего стола Windows каскадом. Возвращаемого значения нет.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") objShellApp.CascadeWindows
3.6. Explore
Explore(<Path>) Назначение: запуск проводника Windows с определённой открытой папкой. Возвращаемого значения нет.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") objShellApp.Explore("C:\") objShellApp.Open("C:\") 'для сравнения
3.7. Open
Open(<Path>) Назначение: запуск проводника Windows с определённой открытой папкой. Возвращаемого значения нет.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") objShellApp.Open("C:\") objShellApp.Explore("C:\") 'для сравнения
3.8. NameSpace
NameSpace(<Path>) Назначение: получение объекта виртуальной папки проводника. Возвращает объект "Folder".
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
FileRun Назначение: вызов окна "Запуск программы" ("Run"). Возвращаемого значения нет.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") objShellApp.FileRun
3.10. FindComputer
FindComputer Назначение: вызов окна проводника Windows "Результаты поиска - компьютеры" ("Search Results - Computers"). Возвращаемого значения нет.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") objShellApp.FindComputer
3.11. FindFiles
FindFiles Назначение: вызов окна проводника Windows "Результаты поиска" ("Find: All Files"). Возвращаемого значения нет.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") objShellApp.FindFiles
3.12. FindPrinter
FindPrinter(<Name>,<Location>,<Model>) Назначение: вызов окна "Поиск принтеров" ("Find Printers") в Active Directory с предварительным заполнением параметров поиска. Возвращаемого значения нет.
VB.NET:
Пример (Windows 2000 Server): [code=vbnet]Set objShellApp = CreateObject("Shell.Application") objShellApp.FindPrinter "Name", "Location", "Model"
3.13. Help
Help Назначение: вызов справки Windows. Возвращаемого значения нет.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") objShellApp.Help
3.14. ShutdownWindows
ShutdownWindows Назначение: вызов окна выключения и перезагрузки компьютера. Возвращаемого значения нет.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") objShellApp.ShutdownWindows
3.15. SetTime
SetTime Назначение: вызов окна настройки времени и даты. Возвращаемого значения нет.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") objShellApp.SetTime
3.16. TrayProperties
TrayProperties Назначение: вызов окна свойств панели задач Windows. Возвращаемого значения нет.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") objShellApp.TrayProperties
3.17. ControlPanelItem
ControlPanelItem(<ИмяФайла>) Назначение: вызов конкретного приложения панели управления. Возвращаемого значения нет.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") objShellApp.ControlPanelItem "desk.cpl" objShellApp.ControlPanelItem ""
3.18. BrowseForFolder
BrowseForFolder(<Hwnd>,<Заголовок>,<Опции>,<КорневаяПапка>) Назначение: вызов модального окна "Выбор папки". Возвращает объект "Folder".
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
Windows Назначение: получение объекта "ShellWindows". Возвращает объект "ShellWindows".
VB.NET:
Set objShellApp = CreateObject("Shell.Application") WinCol = objShellApp.Windows().Count MsgBox "В настоящий момент открыто окон Проводника - " & WinCol, vbInformation
3.20. CanStartStopService
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
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
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
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
GetSystemInformation(<Name>) Назначение: возвращает некоторую системную информацию (возвращаемое значение - число).
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
IsRestricted(<Group>,<Restriction>) Назначение: возвращает значение заданного ограничения по данным реестра (возвращаемое значение - число).
VB.NET:
Set objShellApp = CreateObject("Shell.Application") MsgBox objShellApp.IsRestricted("system", "dontdisplaylastusername")
3.26. ShellExecute
ShellExecute(<File>,<Arguments>,<Directory>,<Operation>,<Show>) Назначение: выполняет указанное действие над указанным файлом. Возвращаемого значения нет.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") objShellApp.ShellExecute "autoexec.bat", "", "C:\", "edit", 1
3.27. ShowBrowserBar
ShowBrowserBar(<CLSID>,<Show>) Назначение: открывает или закрывает указанную панель обозревателя. Возвращает true в случае успеха, и false в случае неудачи.
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
AddToRecent(<File>,<Category>) Назначение: помещает ярлык на указанный файл в папку "Недавних документов" ("Recent") текущего пользователя. Возвращаемого значения нет.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") objShellApp.AddToRecent "C:\MyFile.txt"
3.29. ExplorerPolicy
ExplorerPolicy(<PolicyName>) Назначение: возвращает значение указанной Internet Explorer policy.
GetSetting(<Setting>) Назначение: возвращает значение указанной глобальной установки (параметра) проводника.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") If Not objShellApp.GetSetting(2) Then MsgBox "В ""Свойствах папки"" в проводнике установлен режим " & _ """Скрывать расширения для зарегистрированных типов файлов""!", vbInformation Else MsgBox "В ""Свойствах папки"" в проводнике снят режим " & _ """Скрывать расширения для зарегистрированных типов файлов""!", vbInformation End If
3.31. ToggleDesktop
VB.NET:
Set objShellApp = CreateObject("Shell.Application") objShellApp.ToggleDesktop
3.32. WindowsSecurity
WindowsSecurity Назначение: имитирует нажатие CTRL+ALT+DELETE при использовании соединения Microsoft Terminal Server. Возвращаемого значения нет.
Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков
Сообщения 5,553
Симпатии 5,375
27 Янв 2014 #3
4. Объект Folder
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. Свойства
Title Возвращаемое значение: строка - заголовок папки с соблюдением регистра букв. Конструкция:
VB.NET:
Set objShellApp = CreateObject("Shell.Application") Set objFolder = objShellApp.NameSpace("C:\") MsgBox objFolder.Title, vbInformation
4.2.2. Self
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
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
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
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. Методы
NewFolder(<Имя>,<Опции>) Назначение: создание новой папки внутри текущей. Возвращаемого значения нет.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") Set objFolder = objShellApp.NameSpace("C:\") objFolder.NewFolder("Моя новая папка")
4.3.2. CopyHere
CopyHere(<Путь>,<Опции>) Назначение: копирование файла или папки вовнутрь текущей папки. Возвращаемого значения нет.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") Set objFolder = objShellApp.NameSpace("C:\WINDOWS") objFolder.CopyHere("C:\AUTOEXEC.BAT")
4.3.3. MoveHere
MoveHere(<Путь>,<Опции>) Назначение: перенос файла или папки вовнутрь текущей папки. Возвращаемого значения нет.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") Set objFolder = objShellApp.NameSpace("C:\WINDOWS") objFolder.MoveHere("C:\AUTOEXEC.BAT")
4.3.4. Items
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
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
GetDetailsOf(<Элемент>,<Парам>) Назначение: получение информации об элементе текущей папки. Возвращает строку.
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
DismissedWebViewBarricade Назначение: см. MSDN. Возвращаемого значения нет.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") Set objFolder = objShellApp.NameSpace("C:\WINDOWS") objFolder.DismissedWebViewBarricade
4.3.8. Synchronize
Synchronize Назначение: синхронизирует все offline-файлы. Возвращаемого значения нет.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") Set objFolder = objShellApp.NameSpace("\\server\share\folder") objFolder.Synchronize
Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков
Сообщения 5,553
Симпатии 5,375
27 Янв 2014 #4
5. Объект FolderItems
VB.NET:
Set objShellApp = CreateObject("Shell.Application") Set objFolder = objShellApp.NameSpace("C:\") Set objItems = objFolder.Items()
5.2. Свойства
Application Возвращаемое значение: объект "IShellDispatch".
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
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
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. Методы
Item(<Индекс>) Назначение: получение объекта FolderItem. Возвращает объект FolderItem.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") Set objFolder = objShellApp.NameSpace("C:\") MsgBox objFolder.Items().Item().Path, vbInformation
5.3.2. InvokeVerbEx
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
Filter(<Flags>,<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"
Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков
Сообщения 5,553
Симпатии 5,375
27 Янв 2014 #5
6. Объект FolderItem
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. Свойства
Application Возвращаемое значение: объект "IShellDispatch".
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
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
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
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
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
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
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
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
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
Parent Возвращаемое значение: объект "Folder" родительской папки.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") Set objFolderItem = objShellApp.NameSpace("C:\").Self MsgBox objFolderItem.Parent.Self.Name
6.2.11. Path
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
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
Type Возвращаемое значение: строковое представление типа объекта. Возвращается информация, похожая на ту, что можно увидеть в окне свойств файла (папки) в проводнике.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") Set objFolder = objShellApp.NameSpace("C:\") Set objFolderItem = objFolder.ParseName("autoexec.bat") MsgBox objFolderItem.Type
6.3. Методы
InvokeVerb(<Действие>) Назначение: исполняет указанное действие ("глагол") над элементом. Возвращаемого значения нет.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") Set objFolderItem = objShellApp.NameSpace("C:\").Self objFolderItem.InvokeVerb 'open objFolderItem.InvokeVerb "explore"
6.3.2. InvokeVerbEx
InvokeVerbEx(<Verb>,<Args>) Назначение: выполнить действие операционной системы ("глагол") над элементом. Возвращаемого значения нет.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") Set objFolderItem = objShellApp.NameSpace("C:\").Self objFolderItem.InvokeVerbEx "explore"
6.3.3. Verbs
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
ExtendedProperty(<PropName>) Назначение: возвращает строку, содержащую значение указанного дополнительного свойства элемента.
VB.NET:
Пример: [code=vbnet]Set objShellApp = CreateObject("Shell.Application") Set objFolder = objShellApp.NameSpace("C:\") Set objFolderItem = objFolder.ParseName("МойДокумент.doc") MsgBox objFolderItem.ExtendedProperty("DocTitle") MsgBox objFolderItem.ExtendedProperty("DocAuthor")
Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков
Сообщения 5,553
Симпатии 5,375
27 Янв 2014 #6
7. Объект ShellWindows
VB.NET:
Set objShellApp = CreateObject("Shell.Application") Set objShellWindows = objShellApp.Windows()
7.2. Свойства
Count Возвращаемое значение: число. Количество элементов коллекции.
VB.NET:
Set objShellApp = CreateObject("Shell.Application") Wins = objShellApp.Windows().Count MsgBox "В настоящий момент открыто окон Проводника - " & Wins
7.3. Методы
Item(<Индекс>) Назначение: получение объекта WebBrowser. Возвращает объект WebBrowser.
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
Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков
Сообщения 5,553
Симпатии 5,375
28 Янв 2014 #7
8. Объект ShellLinkObject
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. Свойства
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
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
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
Path Возвращаемое значение: строка. Путь к исполняемому файлу в поле "Объект" ("Target").
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
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
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. Методы
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
Resolve(<Flags>) Назначение: пытается найти объект, на который ссылается ярлык, если этот объект был перемещён или переименован. Возвращаемого значения нет.
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
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
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
Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков
Сообщения 5,553
Симпатии 5,375
28 Янв 2014 #8
9. Объект FolderItemVerbs
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. Свойства
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. Методы
Item(<Index>) Назначение: возвращает объект "FolderItemVerb".
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
Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков
Сообщения 5,553
Симпатии 5,375
28 Янв 2014 #9
10. Объект FolderItemVerb
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. Свойства
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. Методы
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
|
|||||||
Так же в этом разделе:
|
|||||||
![]() |
|||||||
|
|||||||
|