Vbs de veriyi registry değeri ile karşılaştırma


Vbs de veriyi registry değeri ile karşılaştırma
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

Registry değeri ondalık

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)

Registry değerini okutmak

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)

Registry değeri karşılaştırma sonucu

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

Değişken tablosu

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.

Download


2 Yorum Var

Yorum Ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Captcha