Sdílet prostřednictvím


Objekty skriptovatelného prostředí

Prostředí Windows Poskytuje výkonnou sadu automatizačních objektů, které umožňují programovat prostředí pomocí jazyka Microsoft Visual Basic a skriptovací jazyky, jako je Microsoft JScript (kompatibilní se specifikací jazyka ECMA 262) a Microsoft Visual Basic Scripting Edition (VBScript). Tyto objekty můžete použít pro přístup k mnoha funkcím a dialogovým oknem prostředí. Můžete například přistupovat k systému souborů, spouštět programy a měnit nastavení systému.

Tato část představuje skriptovatelné objekty prostředí.

Verze prostředí

V verze 4.71 prostředí se stala dostupná řada objektů Shellu. Ostatní jsou k dispozici ve verzi 5.00 a novější. Verze 5.00 byla dostupná v systému Windows 2000. Následující tabulka uvádí jednotlivé objekty shellu ve verzi prostředí, ve které byl objekt k dispozici.

Verze 4.71 Verze 5.00
složky DIDiskQuotaUser
FolderItemVerb DiskQuotaControl
folderItemVerbs složka2
prostředí FolderItem
ShellFolderView FolderItems
ShellUIHelper FolderItems2
prostředí ShellWindows IShellDispatch2
WebViewFolderContents IShellLinkDual2
ShellFolderItem
ShellFolderViewOC
ShellLinkObject

 

Vytváření instancí objektů prostředí

Pokud chcete vytvořit instanci objektů Prostředí v aplikacích jazyka Visual Basic s ranou vazbou, přidejte do projektu odkazy na následující knihovny:

  • Microsoft Internet Controls (SHDocVw)
  • Ovládací prvky a automatizace prostředí Microsoft Shell (Shell32)

Pozdní vazba

Můžete také vytvořit instanci mnoha objektů Prostředí s pozdní vazbou. Tento přístup funguje v aplikacích jazyka Visual Basic a ve skriptu. Následující příklad ukazuje, jak vytvořit instanci objektu Shell v JScriptu.

<SCRIPT LANGUAGE="JScript">
<!--
    function fnCreateShell()    
    {
        // Instantiate the Shell object and invoke its FileRun method.
        var oShell = new ActiveXObject("shell.application");
        oshell.FileRun;
    }
-->
</SCRIPT>

Následující příklad ukazuje, jak vytvořit instanci objektu Folder v jazyce VBScript.

<SCRIPT LANGUAGE="VBScript">
<!--
    function fnCreateFolder()
        dim oShell    
        dim oFolder
        dim sDir

        sDir = "C:\SomePath" 
        set oShell = CreateObject("shell.application")
        set oFolder = oShell.NameSpace(sDir)  
    end function
-->  
</SCRIPT>

V předchozím příkladu sDir je cesta k objektu Folder. Všimněte si, že ShellSpecialFolderConstants hodnoty výčtu nejsou ve skriptu k dispozici.

Identifikátor ProgID pro každý objekt prostředí je uveden v následující tabulce.

Objekt ID progID
DIDiskQuotaUser Microsoft.DiskQuota.1
DiskQuotaControl Nelze pozdní vazbu
složky lastura. Shell_Application.NameSpace("...")
složka2 lastura. Shell_Application.NameSpace("...")
FolderItem lastura. Shell_Application.NameSpace("..."). Self nebo Folder.Items.Item nebo Folder.ParseName
FolderItems Folder.Items
FolderItems2 Folder.Items
FolderItemVerb Shell.NameSpace("..."). Self.Verbs.Item()
folderItemVerbs FolderItem.Verbs nebo Shell.NameSpace("..."). Self.Slovesa
IShellDispatch2 lastura. Shell_Application
IShellLinkDual2 Shell.NameSpace("..."). Self.GetLink nebo Shell.NameSpace("..."). Items(). GetLink
prostředí lastura. Shell_Application
ShellFolderItem Shell.NameSpace("..."). Self nebo Shell.NameSpace("..."). Items()
ShellFolderView Nelze pozdní vazbu
ShellFolderViewOC Nelze pozdní vazbu
ShellLinkObject Shell.NameSpace("..."). Self.GetLink nebo Shell.NameSpace("..."). Items(). GetLink
ShellUIHelper Nelze pozdní vazbu
prostředí ShellWindows lastura. Shell_Windows nebo ShellWindows._NewEnum
WebViewFolderContents Nelze pozdní vazbu

 

HTML OBJECT Element

Pomocí elementu OBJECT můžete také vytvořit instanci objektů prostředí na stránce HTML. Uděláte to tak, že nastavíte OBJECT elementu ID atributu na název proměnné, kterou použijete ve skriptech, a identifikujte objekt pomocí jeho registrovaného čísla (CLASSID). Následující kód HTML vytvoří instanci objektu ShellFolderItem pomocí elementu OBJECT.

<OBJECT ID="oShFolderItem" 
    NAME="Shell Folder Item Object"
    CLASSID="clsid:2fe352ea-fd1f-11d2-b1f4-00c04f8eeb3e">
</OBJECT>

Následující tabulka uvádí jednotlivé objekty prostředí a příslušné ID TŘÍDY.

Objekt prostředí CLASSID
DIDiskQuotaUser 7988B571-EC89-11cf-9C00-00AA00A14F56
DiskQuotaControl 7988B571-EC89-11cf-9C00-00AA00A14F56
složky BBCBDE60-C3FF-11CE-8350-444553540000
složka2 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
prostředí 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
prostředí ShellWindows 9BA05972-F6A8-11CF-A442-00A0C90A8F39
WebViewFolderContents 1820FED0-473E-11D0-A96C-00C04FD705A2

 

Objekt shellu

Objekt Shell představuje objekty v prostředí. Metody vystavené objektem Prostředí můžete použít k:

  • Otevřete, prozkoumejte a vyhledejte složky.
  • Minimalizovat, obnovit, kaskádovat nebo otevřít okna dlaždic.
  • Spusťte aplikace ovládacích panelů.
  • Zobrazení systémových dialogových oken

Uživatelé jsou možná obeznámeni s příkazy, ke kterým přistupují z nabídky Start a místní nabídky hlavního panelu. Místní nabídka hlavního panelu se zobrazí, když uživatelé kliknou pravým tlačítkem myši na hlavní panel. Následující aplikace HTML (HTA) vytvoří úvodní stránku s tlačítky, která implementují mnoho metod Shell objektu. Některé z těchto metod implementují funkce v nabídce Start a místní nabídce hlavního panelu.

<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.Shell_MinimizeAll
              case 1  
                  'Displays the Run dialog box
                oshell.FileRun
              case 2  
                  'Displays the Shut Down Windows dialog box
                oshell.Shell_ShutdownWindows
              case 3  
                  'Displays the Find dialog box
                oshell.Shell_FindFilesr
              case 4  
                  'Displays the Date/Time dialog box
                oshell.Shell_SetTime 
              case 5  
                  'Displays the Internet Properties dialog box
                oshell.Shell_ControlPanelItem "INETCPL.cpl"
              case 6  
                  'Explores the My Documents folder
                oshell.Shell_Explore "C:\My Documents"
              case 7  
                  'Enables user to select folder from Program Files
                oshell.Shell_BrowseForFolder 0, "My Programs", 0, "C:\Program Files" 
              case 8  
                  'Opens the Favorites folder
                oshell.Shell_Open "C:\WINDOWS\Favorites"
              case 9  
                  'Displays the Taskbar Properties dialog box
                oshell.Shell_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>

Bezpečnost

Jako aplikace běží HTA pod jiným modelem zabezpečení než na webové stránce. Aby uživatelé mohli pracovat s webovou stránkou, která implementuje funkce objektů Prostředí, musí povolit Inicializovat a skriptovat ovládací prvky ActiveX, které nejsou označené jako bezpečné pro zónu zabezpečení, ve které si stránku prohlížejí.

Objekty složek

Objekt Folder představuje složku Prostředí. Metody vystavené objektem Folder můžete použít k:

  • Získejte informace o složce.
  • Vytvořte podsložky.
  • Zkopírujte a přesuňte objekty souboru do složky.

Objekt FolderItem představuje položku ve složce Shell. Její vlastnosti umožňují načíst informace o položce. Pomocí metod vystavených tímto objektem můžete spustit příkazy položky nebo načíst informace o FolderItemVerbs objektu položky.

Objekt FolderItems představuje kolekci položek ve složce Shell. Jeho metody a vlastnosti umožňují načíst informace o kolekci.

Následující příklad jazyka Visual Basic ukazuje vztah mezi několika objekty složky a způsobem jejich použití společně. Když uživatel klikne na příkazové tlačítko s názvem cmdGetPath, program zobrazí dialogové okno, které umožňuje uživateli vybrat složku z Můj počítač, kde ssfDRIVES je ShellSpecialFolderConstants výčtu pro Můj počítač. Když uživatel zvolí složku, cesta ke složce se zobrazí v textovém poli s názvem txtPath.

Private Sub cmdGetPath_Click()
    Dim oShell As New Shell
    Dim oFolder As Folder
    Dim oFolderItem As FolderItem
 
    Set oFolder = oshell.Shell_BrowseForFolder(Me.hWnd, "Select a Folder", 0, ssfDrives)
   
    Set oFolderItem = oFolderItems.Item

    txtPath.Text = oFolderItem.Path
End Sub

V jazyce VBScript se tato funkce mírně liší, protože ShellSpecialFolderConstants hodnoty výčtu nejsou ve skriptu k dispozici. Následující příklad ukazuje ekvivalent jazyka VBScript předchozího příkladu.

<SCRIPT LANGUAGE="VBScript">
<!--
    function fnGetMyPathVB() 
        dim oShell
        dim oFolder
        dim oFolderItem
        
        set oShell = CreateObject("shell.application")      
        set oFolder = oshell.Shell_BrowseForFolder(0, "Choose a Folder", 0)             
        set oFolderItem = oFolder.Items.Item         
        
        document.all.item("myPath").innerText = oFolderItem.Path                                
    end function
-->
</SCRIPT>

V následujícím příkladu jazyka JScript, což je přímý překlad předchozího příkladu jazyka VBScript, všimněte si, jak se prázdné závorky () používají k vyvolání metod Items a Item metody.

<SCRIPT LANGUAGE="JavaScript">
<!--
    function fnGetMyPathJ() 
    {       
        var oShell = new ActiveXObject("shell.application");
                    
        var oFolder = new Object;                   
        oFolder = oshell.Shell_BrowseForFolder(0, "Choose a folder", 0);
                                
        var oFolderItem = new Object;       
        oFolderItem = oFolder.Items().Item();                               
        
        document.all.item("myPath").innerText = oFolderItem.Path;
    }    
-->
</SCRIPT>