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
Aşağıdaki linke bir gözatın
Web Link ...
Merhaba. Eğer belirli bir süre sonunda Hayır / İptal'e basılmazsa, bir programın çalıştırılmasını istiyorum. Sizin Quit'i ona göre editlemeye çalıştım ama beceremedim. Teşekkür ederim.
Ok e basınca programın çalışması için gerekli Kodlarda hata yapmışsındır.
birde bir şeyi sorucam ben bir program yaptım vbs ile ama şöyle bir sorun var yes derse şunu desin no derse şunu desin yapabiliyorum ama cancel veya OK a bastığımda uygulama çalışmıyor kapanıyor çünkü ok derse şöyle desin cancel derse şöyle desin yapamadım nasıl yapabilirim
aynen 3 boyut ile neyi kastetti o
3 boyutlu ile neyi kastettiğini tam anlayamadım yolladığın resim 3 boyutlu değil
merhaba sordum.net vbs mesaj kutusu 3 boyutlu evet hayır butonu kodu varmıdır acaba bi yardım ederseniz sevinirim.
konu ile ilgili resim linki:Web Link ...
Bazen kodlar benim dediklerimi de dinlemiyorlar , sonra ben Aralarına bir "Ajan Smith" yolluyorum , birileri sanırım onlara mavi ve kırmızı hapı seçmelerini söylüyor. Ben yazıp onlar itaat ederken sorun yok, ama onlar kendilerinin kullanıldıklarının farkına varınca bu benim hoşuma gitmiyor,beyaz tavşanı izlemelerini söyeleyenler ile isyanın liderleri aynı kişiler. Bu işte bir tuhaflık var gibi. Matrixe Hoşgeldik.
ben bi kod yazdım 4-5 kez evet hayır soruyo en son sen bilirsin diyip kapatıyo 😀
Mümkün olabilir , ona göre kodlama yapıp deneme yapmak gerekir.
Merhaba, bu pencere açılırken uyarı tonu da çalması mümkün mü?
Elbette , notepad.exe yerine açmak istediğin program ismini yazarsan o açılır