registry reload....

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
i_zec
Üye
Mesajlar: 119
Kayıt: 01 Tem 2005 03:07

registry reload....

Mesaj gönderen i_zec »

herkese kolay gelsın.Registry de yapılan değişiklikleri log off olmayadan veya restart atmadan nasıl tekrar yükleriz.....?
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

sorunuzu tam olarak anlayamadım. biraz daha detaylandırırmısın?
DeveloperToolKit

..::|YeşilMavi|::..
i_zec
Üye
Mesajlar: 119
Kayıt: 01 Tem 2005 03:07

Mesaj gönderen i_zec »

Örnegin bazi programlari yukledikten sonra hani diyoya "Bilgisayarinizi simdi bastan baslatmak istiyormusunuz" die.Iste bu registry e yazdiklarini tam olarak kullanima gercirmek icin yapiyo ya ...
iste bende programin icinde registry e baziseyler yaziyorum.Burada bu registry e yazilanlarin etkisini gorebilmek icin ya log off olup tekrar login olmak gerekiyor ya restart atmak yada task manager daki "explorer.exe" yi elle sonlandirip tekrar "new task" -> "explorer.exe" demek gerekiyor .Hah iste ben diyorum ki bunlari yapmadan kod ile registry i reload yapamazmiyiz....Umarim açiklayici olmustur....
Iyi calismalar...
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

hocam, eğer registry a kendi programın aracılığıyla bişeyler yazmışsan ve yine kendi programınla bu bilgileri kullanacaksan reload gibi bişeye ihtiyacın olmaması lazım. ancak, senin yazdığın bilgileri başka prog.lar kullanacaksa ve reload edilmesi gerektiğini gördüysen (ki ben görmedim) şunu deneyebilirsin; registry e yazacağın bilgileri *.reg dosyasından yüklersen

Kod: Tümünü seç

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_ORACLEWEBASSISTANT]
"NextInstance"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_ORACLEWEBASSISTANT\0000]
"Service"="OracleWebAssistant"
"Legacy"=dword:00000001
"ConfigFlags"=dword:00000000
"Class"="LegacyDriver"
"ClassGUID"="{8ECC055D-047F-11D1-A537-0000F8753ED1}"
"DeviceDesc"="OracleWebAssistant"

(yani yine windows u kullanarak) zaten reload yapıyor diye biliyorum.
zaten regedit açıkken bile *.reg dosyasını yüklerseniz o anda registry ın güncellendiğini görürsünüz.
kolay gelsin
DeveloperToolKit

..::|YeşilMavi|::..
i_zec
Üye
Mesajlar: 119
Kayıt: 01 Tem 2005 03:07

Mesaj gönderen i_zec »

haklısın guncellenir ama kullanılamaz diye bilyorum.Yani etkisini goremezsın.Benim , programda registry e yazdıgım seyler windows u etkileyecek şeyler.Yani sadece kendi program ıcın yazıp okumuyorum.
Ufak bir ornekle açıklayayım.....

HKEY_CURRENT_USER\Sofware\Microsoft\Windows\CurrentVersion\Policies\Explorer

dizini altına NoFind yaz (REG_DWORD) ve değerini 1 yap.
registry i kapattığında etkisini goremezsın lakın ,dediğim yontemlerden birini yaptığında başlat menusunden "ARA"nın gittiğini goreceksın....

İste bu kodla yapılamazmı dıyorum bende .....
Kod ile; Regıstry, yeni yazılan değerleri ile çalışır olamazmı?
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

bu söylediğin registry ı değilde, çalışan bir windows programını (Shell_TrayWnd) reload etmek..
aşağıdaki kod işini görecektir.

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
  xhwnd : hwnd;
begin
  xhwnd := FindWindow(pchar('Shell_TrayWnd'), nil);
  SendMessage(xhwnd, WM_SETTINGCHANGE, 0, 0);
end;
DeveloperToolKit

..::|YeşilMavi|::..
Cevapla