Vbs de bir registry değerinin mevcut olup olmadığını kontrol edip buna göre işlem yaptırabiliyoruz gel gelelim kullanıcının girmesi gereken bir değeri registry değeri ile karşılaştıracaksak değeri olduğu
gibi okutmanın işe yaramadığına şahit oluruz , gelin isterseniz sorunu daha açık şekilde örnek bir uygulama ile açıklayalım elimizde aşağıdaki registry kaydı olsun
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\sordum\password] "sifre"=dword:00000378
Bu registry kaydını uyguladıktan sonra ilgili registry değerini kontrol ettiğimizde aşağıdaki gibi bir veri ile karşılaşırız
Görüldüğü gibi Ondalık - 888 , Onaltılık - 378 gelin Öncelikle bu değeri registryden okutalım bakalım bize hangi değeri verecek bunun için regread kodlarından faydalanıyoruz (Aşağıda)
Dim windowsShell Dim regValue Set windowsShell = CreateObject("WScript.Shell") regValue = windowsShell.RegRead("HKCU\SOFTWARE\sordum\password\sifre") wscript.echo regValue
Üstteki kodları çalıştırdığımızda bize 888 değerini vermektedir (Aşağıdaki resim)
Sırada kullanıcıya soru sorup kullanıcının verdiği cevabı registrydeki değerle karşılaştırmak var bunun için kullandığımız kodlar aşaıda , aynı kodları sayfa sonundaki linktende edinebilirsiniz
Dim windowsShell Dim regValue Set windowsShell = CreateObject("WScript.Shell") regValue = windowsShell.RegRead("HKCU\SOFTWARE\sordum\password\sifre") abc = InputBox("What is the Password - Only numbers ","") if regValue = abc then x=msgbox("True" ,0, "") else x=msgbox("False" ,0, "") End if
Normalde çalışması gereken bu karşılaştırma yöntemi malesef çalışamamaktadır Vbs scripti çalıştığında kullanıcı ister ondalık ister onaltılık değer girsin sonuç hep False olarak tekrarlanmaktadır (Soldaki resim)
eğer bu gibi bir hata ile karşılaşırsanız "CInt" fonksiyonunu kullanıp karşılaştırmanın doğru şekilde yapılmasını sağlayabilirsiniz bunun için kodlarda 4 ve 5. satırların aşağıdaki kodlar ile değiştirilmesi yeterlidir
regValue = CInt(windowsShell.RegRead("HKCU\SOFTWARE\sordum\password\sifre")) abc = CInt(InputBox("What is the Password - Only numbers ",""))
Ardından kullanıcı verilerinin doğru şekilde karşılaştırıldığına şahit oluruz. CInt parametresi burada Belirli bir sayıda herhangi bir değişken alt türünü Tamsayı'a dönüştüren bir İşleve sahiptir benzeri parametreler için aşağıdaki tabloyu kullanabilirsiniz
Peki parametreleri nasıl kullanacağım derseniz aşağıdaki kodları deneyebilirsiniz
wscript.echo 40.91 * 100
wscript.echo Int(40.91 * 100)
wscript.echo CInt(40.91 * 100)
wscript.echo Hex (10*10)
Üstteki kodları tek tek bir not defterine yapıştırıp birer isim verin ve uzantılarını .vbs yapın ve çalıştırın.
Evet bende bu konuda takılmıştım , sağolsun BuleLife yardımcı olmuştu , umarım faydası olur , selamlar
registrydeki bir veriyi bir türlü karşılaştıramıyordum. meğersem bundanmış.