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