Ev Bilgisayarı  


Geri Dön   Ev Bilgisayarı > Program > Programlama

Programlama C,Delphi,Visual Basic ve diğer tüm programlama dilleri hakkında dökümanlar ve bilgilerin merkezi

Delphi/Kylix REGISTER ERİŞİMİ
Program katagorisindeki Programlama bölümünde açılan Delphi/Kylix REGISTER ERİŞİMİ adlı konudan; 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 ...


Cevapla
 
LinkBack Konu Seçenekleri
Eski 13.07.2007, 18:58       #1
Halk
 
Mesajlar: 20
Puan: 100
Tanımlı Delphi/Kylix REGISTER ERİŞİMİ



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');
 
Alıntı ile Cevapla
Cevapla


Konuyu toplam 0 üye ve 1 ziyaretçi okuyor
 
Konu Seçenekleri

Yetkiler
Yeni konu açma yetkisi yoktur
Yeni mesaj gönderme yetkisi yoktur
Yeni eklenti gönderme yetkisi yoktur
Mesaj düzenleme yetkisi yoktur

BB Kodu: Açık
Smileler: Açık
[IMG] Kodu: Açık
HTML Kodları: Kapalı
Trackbacks: Açık
Pingbacks: Açık
Refbacks: Açık

Görüntülemek istediğiniz bölümü seçiniz

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


Bütün zaman ayarları WEZ +2. Saat: 22:34


Powered by vBulletin® Version 3.8.0 Beta 4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
eXTReMe Tracker

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59