Kayıt Defteri kontrolü ile çökmelerin engellenmesi

Windows XP hakkındaki bilgi, belge ve ipucu paylaşım alanıdır.
Cevapla
Kullanıcı avatarı
burak_dalkir
Gigabyte2
Gigabyte2
Mesajlar: 2316
Kayıt: 15 Mar 2006, 10:10
cinsiyet: Erkek
İletişim:

Kayıt Defteri kontrolü ile çökmelerin engellenmesi

Mesaj gönderen burak_dalkir »

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.
loveme
Terabyte1
Terabyte1
Mesajlar: 3523
Kayıt: 10 Tem 2007, 11:47
cinsiyet: Erkek
Teşekkür edildi: 18 kez
İletişim:

Mesaj gönderen loveme »

bunun hazır yazılmıs hali yok mu?
Visual Basic Script nasıl yazabiliriz?
Kullanıcı avatarı
mayhemious
Kilobyte4
Kilobyte4
Mesajlar: 711
Kayıt: 17 Kas 2007, 13:14
cinsiyet: Erkek

Mesaj gönderen mayhemious »

loveme yazdı:bunun hazır yazılmıs hali yok mu?
Visual Basic Script nasıl yazabiliriz?
script i kopyalayın not defterine yapıstırın .vbs uzantılı kaydedin
loveme
Terabyte1
Terabyte1
Mesajlar: 3523
Kayıt: 10 Tem 2007, 11:47
cinsiyet: Erkek
Teşekkür edildi: 18 kez
İletişim:

Mesaj gönderen loveme »

degisen bir sey olmadı vbs de
Kullanıcı avatarı
burak_dalkir
Gigabyte2
Gigabyte2
Mesajlar: 2316
Kayıt: 15 Mar 2006, 10:10
cinsiyet: Erkek
İletişim:

Mesaj gönderen burak_dalkir »

asagida da hazir scriptler var
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.
loveme
Terabyte1
Terabyte1
Mesajlar: 3523
Kayıt: 10 Tem 2007, 11:47
cinsiyet: Erkek
Teşekkür edildi: 18 kez
İletişim:

Mesaj gönderen loveme »

bunlarla ne yapacam dosyaları indirdim hata verdi
Tskler
Kullanıcı avatarı
burak_dalkir
Gigabyte2
Gigabyte2
Mesajlar: 2316
Kayıt: 15 Mar 2006, 10:10
cinsiyet: Erkek
İletişim:

Mesaj gönderen burak_dalkir »

unicode karakterlerinden dolayi ikinci hata veriyor duzeltmeye calisiyorum. ilkini duzelttim. ikinci biraz ugrastiracak gibi
Cevapla