
Vbs de bazen kullanıcıya evet hayır , iptal gibi seçenekler sunmak gerekecektir , bunu da basitçe mesaj kutuları ile yapmak mümkündür , mesaj kutuları scripte esneklik kazandıracak ve kullanıcı insiyatifi
x=msgbox("Yazı buraya gelecek" ,0, "başlık")
üstteki kodu not defterine yapıştırıp bir isim verdikten sonra sonu .vbs olacak şekilde kaydeder ve çalıştırırsak aşağıdaki mesaj kutusu görüntülenecektir.

Koddaki "başlık" ve "yazı buraya gelecek" kısımlarının resimdeki yerleri açıkça belli , bunlarda istediğimiz değişikliği yapabiliriz peki kodda birde sıfır var o nedir derseniz açıklaması ve 0 yerine gelebilecek rakamlar:
0 = Açılır pencerede (Popup) , Sadece Tamam butonu yeralır
1 = Tamam ve İptal Butonları yeralır
2 = Durdur , yeniden dene Yoksay Butonları yeralır
3 = Evet , Hayır ve iptal butonları yeralır
4 = Evet ve Hayır butonları yeralır ama sağ üst köşedeki çarpı ikonu yeralmaz
5 = Yeniden dene ve iptal butonları yeralır
16 = Kritik mesaj ikonu (Üzerinde kırmızı çarpı bulunur)
32 = Uyarı mesajı ikonu (Üzerinde soru işareti bulunur)
48 = Uyarı mesajı ikonu (Üzerinde Uyarı mesaj ikonu bulunur)
64 = Uyarı mesajı ikonu (Üzerinde Bilgi mesaj ikonu bulunur)
0 = First button is default (ilk buton varsayılan)
256 = Second button is default (ikincı buton varsayılan)
512 = Third button is default (üçüncü buton varsayılan)
768 = Fourth button is default (Dördüncü buton varsayılan)
0 = Application modal (Kullanıcı mesaj kutusuna tepki verene kadar script işlem yapmaz)
4096 = System modal (Kullanıcı mesaj kutusuna tepki verene kadar hiçbir yazılım çalışmaz)
Gelin Kullanıcı tercihinin işin içinde olduğu birkaç örnek yapalım kullanıcının tercihine göre işlem yaptırmayı belkide en iyi izah edecek örnek Evet - Hayır örneğidir (Aşağıda)
result = MsgBox ("Evet veya Hayır?", vbYesNo, "Evet hayır örneği")
Select Case result
Case vbYes
MsgBox("Evet dediniz")
Case vbNo
MsgBox("Hayır dediniz")
End Select
Üstteki kodu not defterine yapıştırıp bir isim verelim ve sonu .vbs olacak şekilde kaydedelim çalıştırdığımızda hangi butona basarsak bize onu belirtecektir (Evet butonuna basarsak "Evet butonuna bastınız" der)

Üstteki örnekte kod en yalın hali ile nasıl çalıştığını açıklıyor, kodda MsgBox("Evet dediniz") yerine Evet dendiğinde her ne yapılmak isteniyorsa kodları konulursa evet butonu ile bu eylem gerçekleşecektir aynı şekilde , MsgBox("Hayır dediniz") yerine konacak kodlarla da kullanıcının hayır butonuna bastığında gerçekleşecek olan eylem tanımlanabilir gelin kullanıcıya not defterini açmak isteyip istemediğini soralım
result = MsgBox ("Not defterini açmak istermisiniz?", vbYesNo, "Not defteri örneği")
Select Case result
Case vbYes
Dim oShell
Set oShell = WScript.CreateObject ("WScript.Shell")
oShell.run "notepad.exe"
Set oShell = Nothing
Case vbNo
End Select
Üstteki kod çalıştırıldığında aşağıdaki gibi bir seçenek kutusu belirecektir.

Kullanıcı evet butonuna basarsa Not defteri açılacak hayır derse script tepki vermeyecektir , koda dikkat edilirse üstte de açıkladığım üzere sadece MsgBox kodlarının yerine gerçekleştirmek istediğimiz eylemlerin kodları geldi. Peki Kullanıcıya soru sorduk kullanıcı cevap vermek yerine Bilgisyarın başından kalktı gitti Bu mesaj hep oradamı kalacak mesaja süre konamazmı derseniz elbette verilebilir , mesela aşağıdaki örneğimizde kullanıcı 5 sn içinde evet veya hayır butonlarına basmaz ise script kapanacaktır.
Set WshShell = CreateObject("WScript.Shell")
x = WshShell.Popup("Devam etmek istermisiniz?",5,"Sordum.net",4)
If x = vbNo Then Wscript.Quit(0)
If x = VbYes Then
'Your script goes here
msgbox "EVET i seçtiniz!", 4096, "Yes"
End If
Scriptin ikinci satırındaki 5 rakamı sn yi temsil eder bunu istediğimiz gibi arttırıp azaltabiliriz. Üstte verdiğimiz örnekleri .vbs şeklinde aşağıdaki linkten indirip test edebilirsiniz

10 Haziran 2015 tarihli başlık güncellendi





Abi Not Defteri yerine başka birşey açabilirmiyiz?
Aynı anda hem yazı yazmak hemde program çalıştırmak mümkünmü?
Rica ederim , selamlar.
tamamdır işte bu, teşekkürler.
Aşağıdakini deneyin derim
------------------------------
Set WshShell = CreateObject("WScript.Shell")
result = WshShell.Popup("Not defterini açmak istermisiniz?",15,"Sordum.net",4)
Select Case result
Case vbYes
Dim oShell
Set oShell = WScript.CreateObject ("WScript.Shell")
oShell.run "notepad.exe"
Set oShell = Nothing
Case vbNo
End Select
verdiğiniz kodlardan alttaki kodda kullanıcı hiçbir şey yapmadığı zaman 15 saniye sonra kodun otomatik olarak kapanmasını istiyorum, ama kodun alttaki örnekdeki gibi yine sorunsuz çalışması lazım yani "evet" butonuna tıklayınca notepad açılacak "hayır" butonuna tıklayınca script kapanacak, sadece dediğim gibi kullanıcı 15 saniye falan birşey yapmadığı zaman kendi kendine kapanmasını istiyorum bu mümkünmü?
result = MsgBox ("Not defterini açmak istermisiniz?", vbYesNo, "Not defteri örneği")
Set ObjShell = WScript.CreateObject ("WScript.Shell")
Select Case result
Case vbYes
ObjShell.run "notepad.exe"
Set ObjShell = Nothing
Case vbNo
End Select
yazı zaten burda Lİnkini alabilirsin lazım olduğunda buradan bakabilirsin veya tam sayfa ekran görüntüsünü alırsın
Web Link ...
ama ben tüm yazıyı istiyorum nasıl yapıcam
Fare ucunuzla kodların olduğu kısma gelin sağ köşede belirecek ikonlardan ilkine tıklayın ve kodları kopyalayın.
lütfen kopyalanabilirlik ekleyin
Az önce kontrol ettim kodlarda hata yok , kodları kopyalayıp yapıştırın , yazarken hata olmuş olabilir
kodu yazıyorum ancak End Select yazmama rağmen End gerekli diye bildirim geliyor çözüm yolu bulabilirmisiniz?