![]() |
![]()
|
![]()
|
||||||
| PROGRAMLAMA DİLLERİ Webmasterlar için faydalı bir bölüm. Konu Açmak Moderator Onaylı |
![]() |
|
|
LinkBack | Seçenekler | Stil |
|
|
#1 (permalink) |
|
Mareşal
![]() ![]() |
Windows işletim sisteminin açıkğa vurmus olduğu veritabanın birisi Regedit'dir.Windows tüm ayarlarını buradan okur..Diğer bir veri tabanı vardırki bunu hakkında bir sey bilmediğim için size bir yorum yapamayacağımmm...
VB.NET de regedit e kayıt yapmak için ister API fonksiyonlarını kullanırız.İstersek .NET in bize kendi vermis olduğu .dll dosyasını kullanırız...Ben bu örneğimde .NET de en kolay olan .dll dosyasını kullanarak örnek vermek isterim.... Bir çok yerde regedit e kayıt yapan örnek bulmusuzdur.Ama bende programlada daha yeni iken nasıl REG_DWORD REG_MULTI_SZ REG_BINARY REG_EXPAND_SZ kayıt yapılır çok merak etmisimdir.herkes REG_SZ ve REG_DWORD kayıt örnekleri verirdi...Simdi bunların açıklamasını yapalım Regedit kayıt türü olarak Bytes[] ve String[] türlerine izin vermektdir. REG_SZ =String türünde kayıt.... REG_DWORD=Sayısal türde kayıt... REG_MULTI_SZ=Çokklu string yane Array() türünde kayıt türü.. REG_BINARY=Çoklu sayısak aynen Array() türünde kayıt... REG_EXPAND_SZ=Genişletilebilir string kayıt türü... Simdi REG_EXPAND_SZ REG_BINARY REG_MULTI_SZ kayıt türlerindeki çoklu anlamın açmak gerekirse....VB de dizileri mutlaka biliyoruzdur..Dizileri bilmeyenlerin zate bu konusya ilişkin bir fikir yürütmeleri imkansız gibi görünüyor...Dizilerde boyutlar vadır.Bu iste çoklu anlamına gelende budur.Dizi boyutu kaydı anlamıdır..REG_SZ = String boyutsuz anlamına gelen kayıt türü yane 2 milyar karakter kaydı anlamına gelir.Fakat ben sizin 2 milyar karater kaydedeceğiniz sanmıyom... Buna örnek vermek gerekirse simdi en basta projemizin en üst kısmına REGISTRY kontrol edebilmek için gerekli tanımlamayı yapalım ///////////////////////////////////////// Imports Microsoft.Win32 // //////////////////////////////////////// Bun sonraki işlemimiz sürekli bir button içerisinde geçecektir.... __________________________________________________ ______________ REG_SZ kaydı ve okuması.... Kaydetmek.... Dim girilecek_deger As String = "BEJO" Dim reg As Registryaaa reg = Registry.LocalMachine.OpenSubaaa("SAM" True)reg.SetValue("BEJO" girilecek_deger) ///Registry'de LocalMachice adlı anahtarın alt klasörü olan "SAM" anahtarının altına BEJO adlı ve değeri "BEJO" olan bir string kaydı girdik..... Simdi bu kaydı okumaya gelelim... Dim reg As Registryaaa reg = Registry.LocalMachine.OpenSubaaa("SAM" True)MsgBox(reg.GetValue("BEJO").ToString()) __________________________________________________ ______________ REG_DWORD kaydı ve okuması... Kaydetmek... Dim girilecek_deger As Integer = 120 Dim reg As Registryaaa reg = Registry.LocalMachine.OpenSubaaa("SAM" True)reg.SetValue("BEJO" girilecek_deger)///Registry'de LocalMachice adlı anahtarın alt klasörü olan "SAM" anahtarının altına BEJO adlı ve değeri "BEJO" olan bir bytes =integer kaydı girdik..... Okumak... Dim girilecek_deger As Integer = 120 Dim reg As Registryaaa reg = Registry.LocalMachine.OpenSubaaa("SAM" True)MsgBox(CInt(reg.GetValue("BEJO").ToString())) __________________________________________________ _______________ REG_MULTI_SZ kaydı ve okuması Kaydetmek... Dim yazılcakdeğer As String() = {"www.forummp3.tr" & vbCrLf & "www.divran.com"} Dim reg As Registryaaa reg = Registry.LocalMachine.OpenSubaaa("SAM" True)reg.SetValue("BEJO" yazılcakdeğer)Registry de kaydetmiş olduğumuz anahtara gittiğimizde farklı olan bir sey çıkacaktır karsımıza 2 satırlı bir kayıt oluşturduk.Bunun sebebi string() değerimiz tek boyutlu buda çoklu anlamına gelmektedir..Eğer diğer türde yapmaya çalışsaydınız vbCrLf yazdığımız yerde hata çıkacaktır... Okumak... Dim reg As Registryaaa Dim regdeğer As String() Dim karakter recent As Stringreg = Registry.LocalMachine.OpenSubaaa("SAM" True)regdeğer = reg.GetValue("BEJO") For x As Integer = 0 To regdeğer.GetUpperBound(0) karakter = regdeğer(x) recent += karakter Next MsgBox(recent) __________________________________________________ ______________ REG_BINARY kaydı ve okuması Kaydetmek... Dim reg As Registryaaa Dim değer As String = "www.forummp3.net" Dim yazılacakdeğer(değer.Length - 1) As Byte For x As Integer = 0 To değer.Length - 1 yazılacakdeğer(x) = Asc(Mid(değer x + 1 1))Next reg = Registry.LocalMachine.OpenSubaaa("SAM" True)reg.SetValue("BEJO" yazılacakdeğer)Registry anahtarına baktığımız zaman kaydın değerini aslında bizim yazdığımz değere uygun olmadığını anlayacaksınız.Bizim yazdığımız değerin her bir karakteri ASC yane bilgisayar dilindeki karsılığına çevirilir ve daha sonra kaydederken Bilgisayar otomatik olarak HEX türüne çevirir ve kaydı gerçekleştirir.Bundan anlayacağımız ve çıkarağımız BYTES en büyük değerdir.Nedeni ise HEX de en büyük değer 255 dir ve BYTES en büyük değeri 255 dir.... Okuması... Dim reg As Registryaaa Dim regdeğer As Byte() Dim karakter recent As Stringreg = Registry.LocalMachine.OpenSubaaa("SAM" True)regdeğer = reg.GetValue("BEJO") For x As Integer = 0 To regdeğer.GetUpperBound(0) karakter = Chr(regdeğer(x)) recent += karakter Next MsgBox(recent) Burada da göreceğimiz şekilde kaydımızı okurken değer CHR yane bilgisayar dilinden sayıdan string türüne çeviriliyor...__________________________________________________ _______________ REG_EXPAND_SZ okuması Okuması... Dim reg As Registryaaa reg = Registry.Users.OpenSubaaa(".DEFAULT\Environment\" True)Dim değer As String = reg.GetValue("TEMP").ToString MsgBox(Environment.ExpandEnvironmentVariables(değe r)) Okuma işlemini % işaretinden anlamaktadır.Fakat kaydetme işleminin nasıl yapıldığına dair bir komplike fikirlerim yok..Daha sonra sizlere aktaracağım... simdilik bu kadar... |
|
|
|
|
|
#4 (permalink) |
|
Yeni Üye
![]() |
hata almanın sebebi
REG_DWORD kaydı ve okuması... Kaydetmek... Dim girilecek_deger As Integer = 120 Dim reg As Registryaaa reg = Registry.LocalMachine.opensubaaa("SAM" True)reg.SetValue("BEJO" girilecek_deger)şeklinde değiştir. bu örnekteki değiştirilen kısımları dikkate alarak diğer örneklerdeki kısımları değiştir yoksa çalışmaz |
|
|
|
![]() |
| Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| Seçenekler | |
| Stil | |
|
|