Kayıt Defteri Kontrolü ile Çökmelerin Engellenmesi
Kayıt Defteri veritabanından anahtar kontrolü yaptığınız Visual Basic Script’leri hazırlıyorsunuz. Ancak istenen anahtarlardan biri bulunamadığı zaman script, bir çalışma hatası vererek çöküyor ve hazırladığınız script’lerin artık bu şekilde çökmelerini istemiyorsunuz.
İstediğiniz görevi yerine getiren işlevi kendiniz geliştirmeli ve programınıza entegre etmelisiniz.VBScript, “FileSystem” nesnesinin “FileExists()” yöntemi gibi bir Kayıt Defteri anahtarına okumak üzere erişmeden önce varlığını kontrol edecek bir ifadeye sahip değildir.Bu nedenle hazırladığınız script’in sonuna aşağıdaki
“RegKeyExist()” fonksiyonunun kaynak kodunu eklemelisiniz:
Function RegKeyExist (szRegKey)
Dim objWshShell
Dim szValue
On error Resume Next
Set objWshShell = CreateObject
(“WScript.Shell”)
szValue = objWshShell.RegRead
(szRegKey)
If err.number <> 0 Then
RegKeyExist = False
Else
RegKeyExist = True
End If
Set objWshShell = nothing
End Function
Fonksiyonun Kayıt Defteri içerisinde olup olmadığını kontrol edeceği anahtarı “szRegKey” parametresi kullanılarak veriliyor. Kontrol sonucunda “True” (anahtar mevcut) veya “False” (anahtar mevcut değil) bilgisi geri döndürülüyor. Bu işlevi kendi programınıza şu şekilde ekleyebilirsiniz:
Dim objShell
Dim szRegValue
Const constRegKey = “HKEY_
CURRENT_USERSoftwareKadirdeneme”
Set objShell = CreateObject
(“WScript.Shell”)
If RegKeyExist (constRegKey)
Then
Sz RegValue = objShell.RegHead
(constRegKey)
Else
MsgBox “Anahtar” &
constRegKey & “bulunamad›!”
WScript.Quit
End If
MsgBox “Aşağıdaki değer okunacaktı:” & szRegValue
“RegKeyExist()” fonksiyonu şöyle işliyor: İlk olarak Kayıt Defteri veritabanına ulaşmak için “WScript.Shell” tipinde “objWshShell” nesnesi oluşturuluyor. Fonksiyon bir sonraki adımda “szValue = objWshShell.RegRead (szRegKey)” satırı ile “szRegKey” parametresi ile gönderilen anahtarı okuyor.Ardından hata nesnesi “err” içerisinde saklanan rakamın “0”’a eşit olup olmadığını kontrol ediyor.Bu durumda daha önce çalıştırılan komut bir hata geri döndürmüş ve aranan anahtar Kayıt Defteri veritabanı içerisinde bulunamamış demektir.Bunun sonucunda “RegKeyExist = False” satırı çalıştırılır ve “False” bilgisi geri döndürülür.Aksi takdirde “True” bilgisi geri döndürülecektir.
! Dikkat: Fonksiyonun başında “On Error Resume Next” satırını kullanarak Windows’un bir hata ile karşılaşması durumunda bir sonraki satırı çalıştırmasını sağlamalısınız.Aksi takdirde yine varolmayan bir anahtara erişilmek istendiğinde çalışma zamanı hatası alırsınız.
Bu yazı 20 Ara 2008 tarihinde Windows XP kategorisi altında yazar iYiblogcu tarafından oluşturulmuş. Bu yazıya yapılacak yorumlardan haberdar olmak için RSS 2.0 beslemesini kullanabilirsiniz. Yorum yapabilirsiniz, veya kendi sitenizden geri izleme yapabilirsiniz. Yorumlar için yorum rss, tüm yazılar için Yazı rss bağlantılarını kullanabilirsiniz. İletişim için Patron'u ziyaret edin.


Yorum ekleyin veya yorumları okuyun!