Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Windows Kabuğu, Kabuğu Microsoft Visual Basic ve Microsoft JScript (ECMA 262 dil belirtimi ile uyumlu) ve Microsoft Visual Basic Scripting Edition (VBScript) gibi betik dilleriyle programlamanızı sağlayan güçlü bir otomasyon nesneleri kümesi sağlar. Shell'in özelliklerine ve iletişim kutularına erişmek için bu nesneleri kullanabilirsiniz. Örneğin, dosya sistemine erişebilir, programları başlatabilir ve sistem ayarlarını değiştirebilirsiniz.
Bu bölümde betiklenebilir Shell nesneleri tanıtılır.
- Kabuk Sürümleri
- kabuk nesnelerinin örneğini oluşturma
- Kabuk Nesnesi
- Klasör Nesneleri
Kabuk Sürümleri
Kabuk nesnelerinin çoğu, Kabuğun sürüm 4.71'de kullanılabilir hale geldi. Diğerleri 5.00 ve sonraki sürümlerde kullanılabilir. Sürüm 5.00, Windows 2000 ile kullanıma sunuldu. Aşağıdaki tabloda, nesnenin kullanılabilir olduğu Shell sürümünün altında her Shell nesnesi listelenir.
| Sürüm 4.71 | Sürüm 5.00 |
|---|---|
| Klasör | DIDiskQuotaUser |
| FolderItemVerb | DiskQuotaControl |
| FolderItemVerbs | klasör2 |
| Kabuk | FolderItem |
| ShellFolderView | FolderItems |
| ShellUIHelper | FolderItems2 |
| ShellWindows | IShellDispatch2 |
| WebViewFolderContents | IShellLinkDual2 |
| ShellFolderItem | |
| ShellFolderViewOC | |
| ShellLinkObject |
Kabuk Nesnelerini Örnekleme
Visual Basic uygulamalarında Shell nesnelerini erken bağlama ile örneklemek için projenizde aşağıdaki kitaplıklara başvurular ekleyin:
- Microsoft İnternet Denetimleri (SHDocVw)
- Microsoft Shell Denetimleri ve Otomasyonu (Shell32)
Geç Bağlama
Ayrıca kabuk nesnelerinin birçoğunu geç bağlama ile de başlatabilirsiniz. Bu yaklaşım Visual Basic uygulamalarında ve betikte çalışır. Aşağıdaki örnekte, JScript'te Shell nesnesinin nasıl örneği gösterildi.
<SCRIPT LANGUAGE="JScript">
<!--
function fnCreateShell()
{
// Instantiate the Shell object and invoke its FileRun method.
var oShell = new ActiveXObject("shell.application");
oshell.FileRun;
}
-->
</SCRIPT>
Aşağıdaki örnekte, VBScript'te Klasörü nesnesinin nasıl başlatılacağını gösterilmektedir.
<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>
Yukarıdaki örnekte sDir, Klasör nesnesinin yoludur. ShellSpecialFolderConstants numaralandırma değerlerinin betikte kullanılamadığını unutmayın.
Shell nesnelerinin her biri için ProgID aşağıdaki tabloda gösterilmiştir.
| Nesne | ProgID |
|---|---|
| DIDiskQuotaUser | Microsoft.DiskQuota.1 |
| DiskQuotaControl | Geç bağlanılamıyor |
| Klasör | kabuk. Shell_Application.NameSpace("...") |
| klasör2 | kabuk. Shell_Application.NameSpace("...") |
| FolderItem | kabuk. Shell_Application.NameSpace("..."). Self veya Folder.Items.Item veya Folder.ParseName |
| FolderItems | Folder.Items |
| FolderItems2 | Folder.Items |
| FolderItemVerb | Shell.NameSpace("..."). Self.Verbs.Item() |
| FolderItemVerbs | FolderItem.Verbs veya Shell.NameSpace("..."). Self.Fiiller |
| IShellDispatch2 | kabuk. Shell_Application |
| IShellLinkDual2 | Shell.NameSpace("..."). Self.GetLink veya Shell.NameSpace("..."). Öğeler(). GetLink |
| Kabuk | kabuk. Shell_Application |
| ShellFolderItem | Shell.NameSpace("..."). Self veya Shell.NameSpace("..."). Items() |
| ShellFolderView | Geç bağlanılamıyor |
| ShellFolderViewOC | Geç bağlanılamıyor |
| ShellLinkObject | Shell.NameSpace("..."). Self.GetLink veya Shell.NameSpace("..."). Öğeler(). GetLink |
| ShellUIHelper | Geç bağlanılamıyor |
| ShellWindows | kabuk. Shell_Windows veya ShellWindows._NewEnum |
| WebViewFolderContents | Geç bağlanılamıyor |
HTML OBJECT Öğesi
Html sayfasında Kabuk nesnelerinin örneğini başlatmak için OBJECT öğesini de kullanabilirsiniz. Bunu yapmak için, OBJECT öğesinin kimliği özniteliğini betiklerinizde kullanacağınız değişken adına ayarlayın ve nesneyi kayıtlı numarasını (CLASSID) kullanarak tanımlayın. Aşağıdaki HTML, OBJECT öğesini kullanarak ShellFolderItem nesnesinin bir örneğini oluşturur.
<OBJECT ID="oShFolderItem"
NAME="Shell Folder Item Object"
CLASSID="clsid:2fe352ea-fd1f-11d2-b1f4-00c04f8eeb3e">
</OBJECT>
Aşağıdaki tabloda her Shell nesnesi ve ilgili CLASSID'leri listelemektedir.
| Kabuk nesnesi | CLASSID |
|---|---|
| DIDiskQuotaUser | 7988B571-EC89-11cf-9C00-00AA00A14F56 |
| DiskQuotaControl | 7988B571-EC89-11cf-9C00-00AA00A14F56 |
| Klasör | BBCBDE60-C3FF-11CE-8350-444553540000 |
| klasör2 | 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 |
| Kabuk | 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 |
Kabuk Nesnesi
Shell nesnesi, Kabuktaki nesneleri temsil eder. Shell nesnesi tarafından kullanıma sunulan yöntemleri kullanarak aşağıdakileri yapabilirsiniz:
- Klasörleri açın, keşfedin ve göz atın.
- Açık pencereleri simge durumuna küçültme, geri yükleme, basamaklama veya kutucuk açma.
- Denetim Masası uygulamalarını başlatın.
- Sistem iletişim kutularını görüntüle.
Kullanıcılar, Başlat menüsünden ve görev çubuğunun kısayol menüsünden erişdikleri komutları belki de en iyi bilen kişilerdir. Kullanıcılar görev çubuğuna sağ tıkladığında görev çubuğunun kısayol menüsü görüntülenir. Aşağıdaki HTML Uygulaması (HTA), Shell nesnesinin yöntemlerinin çoğunu uygulayan düğmeler içeren bir başlangıç sayfası oluşturur. Bu yöntemlerden bazıları, Başlangıç menüsünde ve görev çubuğunun kısayol menüsünde özellikler uygular.
<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>
Güvenlik
Bir uygulama olarak HTA, web sayfasından farklı bir güvenlik modeli altında çalışır. Shell nesnelerinin işlevselliğini uygulayan bir web sayfasıyla etkileşime geçmek için kullanıcıların, sayfayı görüntüledikleri güvenlik bölgesi için güvenli olarak işaretlenmemiş ActiveX Denetimlerini başlat ve betikle seçeneğini etkinleştirmeleri gerekir.
Klasör Nesneleri
Klasörü nesnesi bir Shell klasörünü temsil eder. Folder nesnesi tarafından kullanıma sunulan yöntemleri kullanarak aşağıdakileri yapabilirsiniz:
- Klasör hakkında bilgi edinin.
- Alt klasörler oluşturun.
- Dosya nesnelerini kopyalayıp klasöre taşıyın.
FolderItem nesnesi Shell klasöründeki bir öğeyi temsil eder. Özellikleri, öğe hakkındaki bilgileri almanıza olanak tanır. Bir öğenin fiillerini çalıştırmak veya öğenin FolderItemVerbs nesnesi hakkında bilgi almak için bu nesne tarafından kullanıma sunulan yöntemleri kullanabilirsiniz.
FolderItems nesnesi, Shell klasöründeki bir öğe koleksiyonunu temsil eder. Yöntemleri ve özellikleri koleksiyon hakkında bilgi almanıza olanak tanır.
Aşağıdaki Visual Basic örneği, birkaç klasör nesnesi arasındaki ilişkiyi ve bunların birlikte nasıl kullanılabileceğini gösterir. Kullanıcı cmdGetPathadlı komut düğmesine tıkladığında, program kullanıcının Bilgisayarım 'den bir klasör seçmesini sağlayan bir iletişim kutusu görüntüler; burada ssfDRIVES, Bilgisayarım için ShellSpecialFolderConstants numaralandırma değeridir. Kullanıcı bir klasör seçtiğinde, klasörün yolu txtPathadlı metin kutusunda görüntülenir.
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
VBScript'te, ShellSpecialFolderConstants numaralandırma değerleri betikte kullanılamadığından bu işlev biraz farklıdır. Aşağıdaki örnekte, önceki örneğin VBScript eşdeğeri gösterilmektedir.
<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>
Önceki VBScript örneğinin doğrudan çevirisi olan aşağıdaki JScript örneğinde, '()' boş parantezlerinin Items ve Item yöntemlerini çağırmak için nasıl kullanıldığına dikkat edin.
<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>