Kayıt Defteri veritabanından anahtar kontrolü yaptıgınız Visual Basic Script’leri hazırlıyorsunuz. Ancak istenen anahtarlardan biri bulunamadıgı zaman script, bir çalısma hatası vererek çöküyor ve hazırladıgınız script’lerin artık bu sekilde çökmelerini istemiyorsunuz.
İstediginiz görevi yerine getiren islevi kendiniz gelistirmeli ve programınıza entegre etmelisiniz.VBScript, “FileSystem” nesnesinin “FileExists()” yöntemi gibi bir Kayıt Defteri anahtarına okumak üzere erismeden önce varlıgını kontrol edecek bir ifadeye sahip degildir.Bu nedenle hazırladıgınız script’in sonuna asagı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ıgını kontrol edecegi anahtarı “szRegKey” parametresi kullanılarak veriliyor. Kontrol sonucunda “True” (anahtar mevcut) veya “False” (anahtar mevcut degil) bilgisi geri döndürülüyor. Bu islevi kendi programınıza su sekilde 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 “Asagıdaki deger okunacaktı:” & szRegValue
“RegKeyExist()” fonksiyonu söyle isliyor: İlk olarak Kayıt Defteri veritabanına ulasmak için “WScript.Shell” tipinde “objWshShell” nesnesi olusturuluyor. 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 esit olup olmadıgını kontrol ediyor.Bu durumda daha önce çalıstırılan komut bir hata geri döndürmüs ve aranan anahtar Kayıt Defteri veritabanı içerisinde bulunamamıs
demektir.Bunun sonucunda “RegKeyExist = False” satırı çalıstırılır ve “False” bilgisi geri döndürülür.Aksi takdirde “True” bilgisi geri döndürülecektir.
! Dikkat: Fonksiyonun basında “On Error Resume Next” satırını kullanarak Windows’un bir hata ile karsılasması durumunda bir sonraki satırı çalıstırmasını saglamalısınız.Aksi takdirde yine varolmayan bir anahtara erisilmek istendiginde çalısma zamanı hatası alırsınız.
Kayıt Defteri kontrolü ile çökmelerin engellenmesi
- burak_dalkir
- Gigabyte2
- Mesajlar: 2316
- Kayıt: 15 Mar 2006, 10:10
- cinsiyet: Erkek
- İletişim:
- mayhemious
- Kilobyte4
- Mesajlar: 711
- Kayıt: 17 Kas 2007, 13:14
- cinsiyet: Erkek
- burak_dalkir
- Gigabyte2
- Mesajlar: 2316
- Kayıt: 15 Mar 2006, 10:10
- cinsiyet: Erkek
- İletişim:
asagida da hazir scriptler var
anlattigim ilk script bu
anlattigim ilk script bu
Kod: Tümünü seç
http://rapidshare.com/files/92290833/regkeyexist.vbs
En son burak_dalkir tarafından 16 Şub 2008, 12:37 tarihinde düzenlendi, toplamda 2 kere düzenlendi.
- burak_dalkir
- Gigabyte2
- Mesajlar: 2316
- Kayıt: 15 Mar 2006, 10:10
- cinsiyet: Erkek
- İletişim: