2. VBSCRIPT'in çalıştırma bağlamları
2.1. Introduction
vbscript programı, Windows altında doğrudan çalışmaz; bunun yerine, kendisine bir yürütme ortamı ve kendine özgü bir dizi nesne sağlayan bir kapsayıcı içinde çalışır. Ayrıca, vbscript programı, Windows sistemi tarafından kendisine sunulan ve ActiveX nesneleri olarak adlandırılan nesneleri kullanabilir.
![]() |
Bu belgede iki kapsayıcı kullanacağız: genellikle WSH olarak adlandırılan Windows Scripting Host ve bundan sonra bazen IE olarak anılacak olan Internet Explorer tarayıcısı. Bunların dışında pek çok başka kapsayıcı da mevcuttur. Örneğin, MS-Office uygulamaları, VB'in bir türevi olan ve VBA (Visual Basic for Applications) olarak adlandırılan bir ortamdır. Ayrıca, kullanıcıların uygulama sınırlarını aşmalarına olanak tanıyan ve uygulama içinde çalışan, uygulamaya özgü nesneleri kullanan programlar geliştirmelerine izin veren çok sayıda Windows uygulaması bulunmaktadır.
VBScript programının çalıştığı ortam, bu süreçte hayati bir rol oynar:
- Konteyner tarafından VBScript programına sunulan nesneler, konteynerden konteynere farklılık gösterir. Örneğin, WSH, bir VBS programına WScript adlı bir nesne sunar; bu nesne, örneğin ana bilgisayarın ağ paylaşımlarına ve yazıcılarına erişim sağlar. IE ise VBS programına, görüntülenen HTML belgesinin tamamını temsil eden document adlı bir nesne sunar. VBS programı bu belge üzerinde işlem yapabilir. Excel ise VBA programına, çalışma kitaplarını, çalışma sayfalarını, grafikleri vb. temsil eden nesneleri, yani aslında Excel tarafından işlenen tüm nesneleri sunar.
- Bir kapsayıcıdaki nesneler bir VBScript programına tüm gücünü verse de, bazen programın bazı alanlarını kısıtlayabilir. Bu nedenle, IE tarayıcısında çalıştırılan bir VBScript programı, güvenlik nedenleriyle ana bilgisayarın diskine erişemez.
Bu nedenle, VBScript programlamasından bahsederken, programın hangi kapsayıcıda çalıştırılacağının belirtilmesi gerekir.
Windows'ta, WSH veya IE kapsayıcılarında kullanılabilen tek dil VBScript değildir. Örneğin, JScript (=JavaScript), PerlScript (=Perl), Python gibi diller kullanılabilir. Bu dillerin birçoğu ilk bakışta VBScript'ten daha üstün görünebilir. Ancak VBScript'in de ciddi avantajları vardır:
- VB ve bunun türevleri olan VBSCRIPT ile VBA, Windows makinelerde çok yaygındır. Bu dili bilmek vazgeçilmez görünmektedir.
- Bir programın gücünü belirleyen, programın kullandığı dilden çok, program tarafından kullanılabilen nesnelerdir. Oysa bu nesnelerin çoğu, dillerin kendileri tarafından değil, kapsayıcılar tarafından sağlanır.
VBSCRIPT'in bir dezavantajı, Windows dışındaki sistemlere, örneğin Unix'e taşınabilir olmamasıdır. Rakip diller olan JavaScript, Perl ve Python ise taşınabilirdir. Heterojen sistemlerde çalışmak gerekiyorsa, farklı sistemlerde aynı dili kullanmak ilgi çekici, hatta vazgeçilmez olabilir.
2.2. WSH konteyneri
WSH (Windows Scripting Host) konteyneri, Windows ortamında vbscript, javascript, perlscript, python gibi çeşitli dillerde yazılmış programların çalıştırılmasına olanak tanır. Bir dilin WSH içinde kullanılabilmesi için uyulması gereken bir standart vardır. Bu standarda uyan her dil, WSH içinde çalıştırılmaya uygundur. WSH içinde çalıştırılabilen dillerin yukarıdaki listesinin uzayabileceği düşünülebilir. Bir kapsayıcı, çalıştırdığı programlara gerçek güçlerini sağlayan nesneler sunar. Bu durum, tüm dillerin aynı nesne kümesini kullanmasına yol açtığı için diller arasındaki farkları ortadan kaldırma eğilimindedir. Dolayısıyla, bir dili diğerine tercih etmek, performans meselesi olmaktan ziyade basit bir zevk meselesi haline gelebilir.
WSH'te bir programın çalıştırılması, wscript.exe ve cscript.exe adlı iki yürütülebilir dosya yardımıyla gerçekleştirilir. wscript.exe genellikle %windir% olarak adlandırılan Windows kurulum dizininde bulunur:
C:\ >echo %windir%
C:\WINDOWS
C:\>dir c:\windows\wscript.exe
WSCRIPT EXE 123 280 19/09/01 11:54 wscript.exe
L'exécutable cscript.exe se trouve lui sous %windir%\command :
C:\>dir c:\windows\cscript.* /s
Répertoire de C:\WINDOWS\COMMAND
CSCRIPT EXE 102 450 26/06/01 17:49 cscript.exe
wscript'teki "w" harfi windows'i, cscript'teki "c" harfi ise console'i ifade eder. Bir komut dosyası, wscript veya cscript ile aynı şekilde çalıştırılabilir. Aradaki fark, ekran mesajlarının görüntülenme biçimindedir:
- wscript mesajları bir pencerede görüntüler
- cscript ise bunları ekranda görüntüler
Aşağıda, ekrana coucou yazısını görüntüleyen coucou.vbs komut dosyası yer almaktadır:
![]()
Bir DOS penceresi açalım ve bunu sırasıyla wscript ve cscript ile çalıştıralım:

DOS>cscript coucou.vbs
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.
coucou
Yukarıda iki mod arasındaki fark açıkça görülmektedir. Bu belgede, neredeyse tamamen cscript konsol modunu kullanacağız. Bu mod, "toplu iş" olarak adlandırılan, yani kullanıcının klavyeyle etkileşime girmediği uygulamalar için uygundur. Yukarıdaki sonuçlarda iki noktaya dikkat çekmek gerekir:
- wscript.exe ve cscript.exe yürütülebilir dosyalarının her ikisinin de makinedeki "PATH" dizininde olduğu varsayılmıştır; bu sayede, sadece adlarını yazarak bu dosyaları çalıştırmak mümkündür. Aksi takdirde, buraya şunu yazmak gerekirdi:
- Bu örnekte ve belgenin geri kalanında kullanılan wsh sürümünün 5.6 olduğu unutulmamalıdır.
- Komut dosyasının kaynak dosyası .vbs uzantısına sahiptir. Bu uzantı, vbscript komut dosyasını belirtir; javascript komut dosyası ise .js uzantısıyla belirtilir.
cscript programının çeşitli çalıştırma seçenekleri vardır; bu seçeneklere, cscript komutunu hiçbir parametre olmadan çalıştırarak ulaşılabilir:
//nologo argümanı, wsh başlık çubuğunun görüntülenmesini engeller:
2.3. WSH komut dosyasının biçimi
Az önce ilk komut dosyasını gördük: coucou.vbs
![]()
Dosyanın .vbs uzantısının, vbscript komut dosyasını işaret ettiğini belirtmiştik. Bu bir zorunluluk değildir. Komut dosyasını, daha karmaşık olan aşağıdaki biçimde .wsf uzantılı bir dosyaya da yerleştirebilirdik:

Bu komut dosyasının çalıştırılması sonucunda şunlar elde edilir:
Bir WSH komut dosyası, dilleri karıştırabilir:

Bu komut dosyasının çalıştırılması sonucunda şunlar elde edilir:
Aşağıdaki noktalara dikkat edelim:
- WSH kapsayıcısı herhangi bir dille ilişkili değildir. Bir wsh komut dosyası, .wsf uzantılı bir dosyada dilleri karıştırabilir
- Komut dosyası, <job id="..."> ... </job> etiketleri ile çevrelenir
- Uygulamanın (=job) içinde, kodun farklı bölümlerinde kullanılan diller <script language="...."> .... </script> etiketleriyle belirtilir
- Bu etiketleme dilinin bir adı vardır: XML (eXtended Etiketleme Dili). XML ise herhangi bir etiket tanımlamaz, ancak etiketlerin düzenlenme kurallarını belirler. Dolayısıyla burada, bir wsh betiğinde kullanılan etiketleme dilinin XML standardına uygun olduğunu söylemeliyiz.
Bundan sonra, .vbs dosyalarında yalnızca vbscript kullanacağız.
2.4. WSCRIPT nesnesi
WSH kapsayıcısı, çalıştırdığı komut dosyalarına wscript adlı bir nesne sunar. Bir nesnenin özellikleri ve yöntemleri vardır:
![]() |
Bir Obj nesnesinin, durumunu belirleyen Pi özellikleri vardır. Dolayısıyla bir thermomètre nesnesinin bir température özelliği olabilir. Bu özellik, termometrenin durumunun bir yönüdür. Bir diğeri ise termometrenin dayanabileceği maksimum sıcaklık olan Tmax olabilir.
Obj nesnesi, dış etkenlerin aşağıdakileri yapmasına olanak tanıyan Mj yöntemlerine sahip olabilir:
- durumunu öğrenmek
- durumunu değiştirmek
Dolayısıyla, termometremiz elektronik ise, onu çalıştıran bir allumer yöntemi, onu kapatan bir éteindre yöntemi ve denge sıcaklığına ulaşıldığında bunu gösteren bir afficher yöntemi olabilir. Programlama açısından bir yöntem, argüman alabilen ve sonuç döndürebilen bir işlevdir.
VBScript'te, bir Obj nesnesinin Pi özellikleri Obj.Pi olarak, Mj yöntemleri ise Obj.Mj olarak gösterilir. WSH'teki wscript nesnesi, komut dosyalarına sunduğu yöntemler açısından önemli bir nesnedir. Örneğin, echo yöntemi bir mesajın görüntülenmesini sağlar. Bu yöntemin sözdizimi şöyledir:
argi argümanlarının değerleri, bir pencerede (wscript ile çalıştırıldığında) veya ekranda (DOS altında cscript ile çalıştırıldığında) görüntülenir.
2.5. Internet Explorer'ın kapsayıcı işlevi
Yukarıda, Internet Explorer'ın bir VBScript komut dosyası için bir kapsayıcı olabileceğini belirtmiştik. Bunu basit bir örnekle gösterelim. Aşağıda, HTML (HyperText İşaretleme Dili) adlı ve VBScript komut dosyası içermeyen bir sayfa yer almaktadır.
21

Internet Explorer (Fichier/Ouvrir) tarafından doğrudan yüklendiğinde şu sonuçlar elde edilir:
![]() |
coucou2.htm dosyasının içeriği, HTML'in bir işaretleme dili olduğunu göstermektedir. HTML dilini bilmek, bu etiketleri bilmek demektir. Bu etiketlerin temel amacı, tarayıcıya bir belgenin nasıl görüntüleneceğini belirtmektir. HTML, XML standardına tam olarak uymaz, ancak ona yakındır.
coucou2.htm'te, 1 ve 2 olarak işaretlenmiş iki bilgi bulunmaktadır. Bunları, oluşturulan ekranda da aynı şekilde gösterdik. Bilgi 1'in tarayıcının başlık çubuğuna yerleştirilmesini sağlayan <title>...</title> etiketidir; bilgi 2'nin ise tarayıcının belge kısmına yerleştirilmesini sağlayan <body>..</body> etiketidir.
HTML dilini daha fazla incelemeyeceğiz. coucou2.htm dosyasını bir VBScript komut dosyası ekleyerek değiştirelim ve adını coucou1.htm olarak değiştirelim:

VBScript komut dosyası, <head>...</head> etiketine yerleştirilmiştir. Başka bir yere de yerleştirilebilirdi. Sayfa ilk yüklendiğinde "coucou" yazısını görüntüler. Burada tarayıcı Internet Explorer olmalıdır, çünkü yalnızca bu tarayıcı varsayılan olarak VBScript komut dosyalarını çalıştırabilir. Elde edilen görüntü şöyledir:

ardından sayfanın normal görüntüsü gelir:

Çalıştırılan komut dosyası şuydu:
![]()
WSH konteyneri, komut dosyasına wscript adlı bir nesne sunarken, bu nesne echo yöntemiyle görüntüleme yapılmasına olanak sağlıyordu; burada ise IE, komut dosyasına window adlı bir nesne sunarak, alert yöntemiyle görüntüleme yapılmasına olanak sağlıyordu. Dolayısıyla, "coucou" yazısını görüntülemek için, WSH içinde wscript.echo "coucou" yazılır ve IE içinde window.alert "coucou" yazılır. Burada da aslında IE konteynerinde birden fazla dil kullanılabileceğini gösterebiliriz. WSH'te bir coucou3.htm sayfası içinde daha önce sunulan örneği tekrar ele alalım:

Bu sayfanın IE tarafından yüklenmesi sırasında öncelikle üç bilgi penceresi görüntülenir:
![]() | ![]() | ![]() |
ardından son sayfa görüntülenir:

2.6. WSH yardım dosyası
WSH yardım dosyası, genellikle "C:\Program Files\Microsoft Windows Script\ScriptDocs" klasöründe bulunan bir yardım sistemi ile birlikte gelir. WSH'in 5.6 sürümünde, yardım dosyasının adı "SCRIPT56.CHM"dir. Yardıma erişmek için bu dosyaya çift tıklamanız yeterlidir. Masaüstünüzde bu dosyanın bir kısayolunu oluşturmak kullanışlı olabilir.
Program başlatıldığında, aşağıdaki gibi bir ekran karşınıza çıkar:

Burada WSH konteynerinin yardımının yanı sıra vbscript ve javascript dilleri için yardım da bulunur. Bu, hem yeni başlayanlar hem de deneyimli programcılar için vazgeçilmez bir araçtır. Bu yardımla çalışmanın birkaç yolu vardır:
- Ne aradığımızı tam olarak bilmiyoruz. Sadece sunulan seçenekleri keşfetmek istiyoruz. Bu durumda yukarıdaki Sommaire sekmesi kullanılabilir. Örneğin, VBScript için sunulan seçeneklere bakabiliriz:

VBscript yardımında, bu belgede yer almayan birçok bilgiyi bulabilirsiniz.
- Belirli bir konuyu, örneğin VBscript'teki msgbox işlevinin nasıl kullanıldığını araştırabilirsiniz. Bu durumda Rechercher sekmesini kullanın:

Yardım, aranan kelimeyle ilgili tüm başlıkları gösterir. Genellikle önerilen ilk başlıklar en alakalı olanlardır. Bu durumda da önerilen ilk başlık doğru olanıdır. Bu başlığın bilgilerine ulaşmak için üzerine çift tıklamanız yeterlidir:






