Сообщений 4 Оценка 30 [+3/-0] Оценить |
Демонстрационный пример (Visual Basic) - 2
Объект Microsoft Windows Shell позволяет получить доступ к различным настройкам Windows при помощи технологий COM и Automation, что позволяет использовать Visual Basic и VBScript. Например, вы можете получить доступ к различным диалоговым окнам, к файловой системе, запускать программы и изменять системные настройки. Итак, знакомимся с объектом Shell.
Многие из объектов оболочки Shell доступны начиная с версии 4.71, но существуют и объекты доступные только в версии 5.00 и выше. Версия 4.71 установлена на компьютерах с Windows 98, а версия 5.00 на Windows 2000. Ниже приводится список доступных объектов для каждой версии (версия 5.0 поддерживает все объекты версии 4.71).
Версия 4.71 | Версия 5.00 |
---|---|
Folder | DIDiskQuotaUser |
FolderItemVerb | DiskQuotaControl |
FolderItemVerbs | Folder2 |
Shell | FolderItem |
ShellFolderView | FolderItems |
ShellUIHelper | FolderItems2 |
ShellWindows | IShellDispatch2 |
WebViewFolderContents | IShellLinkDual2 |
ShellFolderItem | |
ShellFolderViewOC | |
ShellLinkObject |
Получить доступ к объекту Shell в Visual Basic можно при помощи раннего связывания, добавив ссылку к библиотекам:
Откроем проект в Visual Basic. Добавим ссылки к библиотекам и пишем следующий код для кнопки Command1
Dim o As New Shell o.MinimizeAll Set o = Nothing |
Данный пример сворачивает все открытые окна
Также можно получить доступ к объектам Shell при помощи позднего связывания. Этот способ используется в скриптовых языках.
Приведем пример использования объекта Shell в VBScript.
<SCRIPT LANGUAGE="VBScript"> <!-- function fnMinimizeAll() dim oShell set oShell = CreateObject("Shell.Application") oShell.MinimizeAll end function --> </SCRIPT> |
Аналогично работает этот код и в Visual Basic
Примечание: Не все объекты Shell доступны при помощи позднего связывания. Вот список недоступных объектов
Эти ограничения не являются проблемой для Visual Basic, где вы можете получить доступ через ссылки к соответствующим библиотекам, как это было описано немного выше. Но в скриптовых языках вроде VBScript у вас такой возможности нет.
Вы также можете получить доступ к объектам Shell на html-страничке, используя элемент OBJECT. Для этого необходимо связать атрибут идентификатора ID элемента OBJECT с некоторым именем и идентифицировать объект с его регистрационным номером в системе (CLASSID). Следующий пример создает экземпляр объекта ShellFolderItem при помощи OBJECT
<OBJECT ID="oShFolderItem" NAME="Shell Folder Item Object" CLASSID="clsid:2fe352ea-fd1f-11d2-b1f4-00c04f8eeb3e"> </OBJECT> |
Список объектов Shell и их CLASSID
Object | CLASSID |
---|---|
DIDiskQuotaUser | 7988B571-EC89-11cf-9C00-00AA00A14F56 |
DiskQuotaControl | 7988B571-EC89-11cf-9C00-00AA00A14F56 |
Folder | BBCBDE60-C3FF-11CE-8350-444553540000 |
Folder2 | F0d2d8ef-3890-11d2-Bf8b-00c04fb93661 |
FolderItem | 744129E0-CBE5-11CE-8350-444553540000 |
FolderItems | 744129E0-CBE5-11CE-8350-444553540000 |
FolderItems2 | C94F0AD0-F363-11d2-A327-00C04F8EEC7F |
FolderItemVerb | 08EC3E00-50B0-11CF-960C-0080C7F4EE85 |
FolderItemVerbs | 1F8352C0-50B0-11CF-960C-0080C7F4EE85 |
IShellDispatch2 | A4C6892C-3BA9-11d2-9DEA-00C04FB16162 |
IShellLinkDual2 | 317EE249-F12E-11d2-B1E4-00C04F8EEB3E |
Shell | 13709620-C279-11CE-A49E-444553540000 |
ShellFolderItem | 2fe352ea-fd1f-11d2-b1f4-00c04f8eeb3e |
ShellFolderView | 62112AA1-EBE4-11cf-A5FB-0020AFE7292D |
ShellFolderViewOC | 4a3df050-23bd-11d2-939f-00a0c91eedba |
ShellLinkObject | 11219420-1768-11d1-95BE-00609797EA4F |
ShellUIHelper | 64AB4BB7-111E-11D1-8F79-00C04FC2FBE1 |
ShellWindows | 9BA05972-F6A8-11CF-A442-00A0C90A8F39 |
WebViewFolderContents | 1820FED0-473E-11D0-A96C-00C04FD705A2 |
Объект Shell является очень мощным оружием программиста для доступа ко многим возможностям Windows Shell. Вы сможете:
Приведем пример использования многих методов объектов Shell на Visual Basic
Откройте проект, установите ссылки на библиотеки, добавьте на форму элемент ListBox
Private Sub Form_Load() List1.AddItem "Свернуть все окна" List1.AddItem "Окно Запуск программы" List1.AddItem "Окно закрытия Windows" List1.AddItem "Окно Найти файлы" List1.AddItem "Системное время" List1.AddItem "Свойства экрана" List1.AddItem "Свойства панели задач" List1.AddItem "Окна каскадом" End Sub Private Sub List1_Click() Dim o As New Shell Select Case List1.ListIndex Case 0 o.MinimizeAll Case 1 o.FileRun Case 2 o.ShutdownWindows Case 3 o.FindFiles Case 4 o.SetTime Case 5 o.ControlPanelItem "desk.cpl" Case 6 o.TrayProperties Case 7 o.CascadeWindows End Select Set o = Nothing End Sub |
Теперь примеры при помощи HTML.
<HTML> <HEAD> <TITLE>Start Page</TITLE> <OBJECT ID="oShell" CLASSID="clsid:13709620-C279-11CE-A49E-444553540000"> </OBJECT> <STYLE> INPUT {width: 200} </STYLE> <SCRIPT LANGUAGE="VBScript"> <!-- function fnStart(sMethod) select case sMethod case 0 'Minimizes all windows on the desktop oShell.MinimizeAll case 1 'Displays the Run dialog box oShell.FileRun case 2 'Displays the Shut Down Windows dialog box oShell.ShutdownWindows case 3 'Displays the Find dialog box oShell.FindFiles case 4 'Displays the Date/Time dialog box oShell.SetTime case 5 'Displays the Internet Properties dialog box oShell.ControlPanelItem "INETCPL.cpl" case 6 'Explores the My Documents folder oShell.Explore "C:\My Documents" case 7 'Enables user to select folder from Program Files oShell.BrowseForFolder 0, "My Programs", 0, "C:\Program Files" case 8 'Opens the Favorites folder oShell.Open "C:\WINDOWS\Favorites" case 9 'Displays the Taskbar Properties dialog box oShell.TrayProperties end select end function --> </SCRIPT> </HEAD> <BODY> <H1>Start...</H1> <INPUT type="button" value="Edit Taskbar Properties" onclick="fnStart(9)"><br> <INPUT type="button" value="Open Favorites Folder" onclick="fnStart(8)"><br> <INPUT type="button" value="Browse Program Files" onclick="fnStart(7)"><br> <INPUT type="button" value="Explore My Documents" onclick="fnStart(6)"><br> <INPUT type="button" value="Modify Internet Properties" onclick="fnStart(5)"><br> <INPUT type="button" value="Set System Time" onclick="fnStart(4)"><br> <INPUT type="button" value="Find a File or Folder" onclick="fnStart(3)"><br> <INPUT type="button" value="Shut Down Windows" onclick="fnStart(2)"><br> <INPUT type="button" value="Run" onclick="fnStart(1)"> <INPUT type="button" value="Minimize All Windows" onclick="fnStart(0)"> </BODY> </HTML> |
ПРИМЕЧАНИЕ В case 6 и case 8 использовались пути (имена папок) для английской версии Windows98. В случае необходимости используйте константы ShellSpecialFolderConstants, позволяющие получить реальные пути к системным каталогам. |
Данная статья предоставляет лишь краткий обзор богатых возможностей, предоставляемых объектом Shell. Читайте MSDN, где достаточно подробно описана документация по Shell. Также, в Visual Basic вы можете просмотреть свойства, методы и объекты, предоставляемые Shell при помощи Object Browser (View-Object Browser или F2). Напоследок, приведу пример вызова диалогового окна Добавление в избранное
Dim suih As New ShellUIHelper Dim mysite As String mysite = "http://rsdn.ru/" suih.AddFavorite mysite, "RSDN" |
Удачного вам программирования!
Сообщений 4 Оценка 30 [+3/-0] Оценить |