![]() |
| |||||||
| Programlama C,Delphi,Visual Basic ve diğer tüm programlama dilleri hakkında dökümanlar ve bilgilerin merkezi |
| | |
|
| | LinkBack | Konu Seçenekleri |
| | #1 |
| Halk ![]()
Mesajlar: 20
Puan: 100 | GENEL BİLGİ Registry bilindiği gibi windowsun sistem bilgilerini tuttuğu kendine has bir veritabanıdır. bu veritabanında windows bir çok çeşit bilgi tutabilir.bunlar... * işletim sistemi sistem bilgileri * sistemin donanım bilgileri * işletim sisteminde tanımlı bütün kullanıcıların bilgileri * işletim sistemine kululan yazılım bilgileri gibi daha bir sürü şey..... Delphi'de registry ayarlarına erişimek, okumak ve üzerinde değişiklik yapmak için eklenmesi gereken paket Registry paketidir. bunu projenin uses kısmına eklemek gerekir. uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,Registry; Bu paket eklendikten sonra projede artık register erişim için gereken kodlar kullanılabilir. * Registry'e bilgilerine erişim için kullanılan windows editörüne erişmek için başlat/run ekranı açıldıktan sonra açılan ekranda 'regedit' yazıp enter'a basınız * registry veritabanı aslında birbirinden bağımsız ayrı hiyerarşik veritabanlarından oluşur.bunlardan 2'si HKEY_LOCAL_MACHINE ve HKEY_USERS olanlardır. Diğerleri (HKEY_CLASES_ROOT,HKEY_CURRENT_USER,HKEY_CURRENT_C ONFIG) aslında vu iki veritabanının işaretçilerini işaret eder. konuyu daha iyi anlamak için bunları windowstaki sürücüler olarak görebiliriz. bir kayda erişmek için sürücü seçiminden sonra tabiki yol bilgisini belirtmek gerekir.(örn: 'SOFTWARE\borland\delphi\7.0' gibi). Path belirtildikten sonra karşımıza anahtarlar çıkar. (örn: az önceki Path'te belirtilen yerde bulunan App anahtarı gibi) anahtarların bir ismi ve birde aldığı değer vardır. App anahtarının aldığı değer 'D:\Program Files\Borland\Delphi7\Bin\delphi32.exe' gibi. bir anahtarın değerini değiştirmek için anahtar üzerinde çift tıklamak gerekerir. çıkan ekranda değişiklik yapılabilinir. DELPHİ'DEN ERİŞİM * öncelikli olarak okuma ve yazma işlemlerin yapılacağı bir Register değişkeni tanıtmak gerekir.bu değişken TRegistry sınıfından olmalı. değişkenimizin adı RegDosya olsun RegDosya: TRegistry; * Bu değişkeni kullanabilmek için proje içinde kullanılacağı yerde yaratmak gerekir.Bu işlem için RegDosya := TRegistry.Create; kodu kullanılmalı * öncelikli olarak register'da okuma işlemi yapalım. bunun için seçilecek kovan veya sürücü veya veritabanı veya RootKey(her ne derseniz) için RegDosya değişkeninin RootKey özelliğine değer atayacağız. RegDosya.RootKey := HKEY_LOCAL_MACHINE; * RegDosya değişkeninin 'OpenKey' fonksiyonu register yolunu belirtmek için kullanılır. RegDosya.OpenKey('SOFTWARE\borland\delphi/7.0', True) anlaşılacağı gibi bu fonksiyonun ilk parametresi yolu belirtir. ikincisi ise belirtilen yolu bulmaması durumunda oluşturup oluşturmayacağına karar vermemizi sağlar. eğer True değeri verir isek bulmadığı takdirde bu yolu oluşturacaktır. * Belirtilen yolda istediğiniz anahtarın olup olmadığını kontrol etmek için RegDosya değişkeninin ValueExists fonksiyonu kullanılır. if RegDosya.ValueExists('App') then begin ShowMessage(RegDosya.ReadString('App')); end; * Register anahtarlarının bir kaç çeşidi vardır. String anahtarların değerini öğrenmek için Regdosya değişkeninin ReadString fonksiyonu kullanılır. float anahtarların değerini öğrenmek için ReadFloat veya Boolean bir değer için ReadBool funksiyonu kullanılır. ShowMessage(RegDosya.ReadString('App')); kodunu yazdığınız an 'App' anahtarının değerini bize showmessage ile görüntüler. App değişkenin değeri Delphi 7.0 exe'sinin bilgisayarda bulunduğu yeri gösteriyor. * String Anahtarlara bir değer yazmak için WriteString , integer anahtara bir değer yazmak için Writeinteger fonksiyonları kullanılır.Diğer değişken türleride aynı mantıkla eşleşir. if RegDosya.OpenKey('SOFTWARE\borland\delphi/7.0', False) then begin RegDosya.WriteString('App','D:\Delphi32.exe'); end; Eğer Belirtilen yolda 'App' diye bir değişken bulunmaz ise komut 'App' diye yeni bir anahtar oluşturur ve değerine 'D:\Delphi32.exe' varsa sadece değerini değişirir. NOT : örnek uygulama yaparken Register'ı bir anahtarı üzerinde değişiklik yapmayın. bu sisteminiz göçmesine neden olabilir. onun yerine kendinizin oluşturduğu anahtar ve yollar üzerinde oynayın. şimdi registerdan string bir değer okuma için fonksiyon ve registera yazma için procedure yazalım. çünkü yazma işleminde geri bir değer döndürmesini istemediğimiz için fonksiyona gerek yok //-----önce kayıt okuma için fonkiyon function OKUSTRING(str_HKEY: HKEY; str_Yol: String; str_Anahtar: String; strDefault: String): String; var RegDosya: TRegistry; begin RegDosya := TRegistry.Create; RegDosya.RootKey := str_HKEY; Result := strDefault; if RegDosya.OpenKey(str_Yol, True) then begin if RegDosya.ValueExists(str_Anahtar) then begin result := RegDosya.ReadString(str_Anahtar); end; RegDosya.CloseKey; end; RegDosya.Free; end; //-----şimdi ise kayıt yazma için procedure yazalım procedure YAZSTRING(str_HKEY: HKEY; str_Yol: String; str_Anahtar: String; str_Yazilacak: String); var RegDosya: TRegistry; begin RegDosya := TRegistry.Create; RegDosya.RootKey := str_HKEY; if RegDosya.OpenKey(str_Yol, True) then begin RegDosya.WriteString(str_Anahtar, str_Yazilacak); RegDosya.CloseKey; end; RegDosya.Free; end; //-----Bu fonksiyon ve procedure'ü aşağıdaki gibi kullanabiliriz Str_Deger := OKUSTRING(HKEY_LOCAL_MACINE , 'HARDWARE\DESCRIPTION\SYSTEM' , 'SystemBiosDate' , ''); YAZSTRING(HKEY_LOCAL_MACINE ,'SOFTWARE\MEHMET ALI', 'TAKIM' ,'FENERBAHÇE'); |
|
![]() |
| Konuyu toplam 0 üye ve 1 ziyaretçi okuyor | |
| Konu Seçenekleri | |
|
|
Benzer Konular | ||||
| Konu | Konuyu Açan | Forum | Cevaplar | Son Mesaj |
| Delphi Kullanılan Bazı KOMUTLAR | d4erth | Programlama | 2 | 6.08.2007 09:20 |
| Delphi İle Serial PORT KONTROLU (DB-25) | d4erth | Programlama | 0 | 20.07.2007 19:53 |
| Delphi Componentleri (FTP) | meydan | Programlama | 1 | 20.07.2007 12:43 |
| Delphi/Kylix İNİ Dosya Kullanımı | meydan | Programlama | 0 | 13.07.2007 18:59 |
| DElphi Şaka Kodları | d4erth | Programlama | 0 | 4.02.2007 22:56 |