Delphi XE / x64 kayıt defteri yetki sorunu [ÇÖZÜLDÜ]

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
SHURZAN
Üye
Mesajlar: 73
Kayıt: 06 Eki 2007 05:34
Konum: İstanbul

Re: Delphi XE / kayıt defteri yetki sorunu

Mesaj gönderen SHURZAN »

Verdiğin kodu denedim gerçekten OpenKey yapmadan CreateKey yapınca dediğin şey oluyor fakat önce OpenKey yapıp open edilen key altında create ettiğinde doğru yerde olmakta.
Aşağıdaki kodu incele, UAC ile ilgisi yok eklenti olmadan da doğru çalışmakta.

Kod: Tümünü seç

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var reg : tregistry;
begin
 reg:=TRegistry.Create;
 reg.RootKey:=HKEY_LOCAL_MACHINE;
 reg.Access := KEY_WOW64_64KEY or KEY_ALL_ACCESS;
 reg.OpenKey('Software',false);
 reg.CreateKey('aaaaa');
 reg.CloseKey;
 reg.Free;
end;

end.
anoedi
Üye
Mesajlar: 33
Kayıt: 20 Nis 2009 06:20

Re: Delphi XE / kayıt defteri yetki sorunu

Mesaj gönderen anoedi »

Hocam gerçekten de anlam veremediğim kadar varmış. Openkey ile ne alakası olabilir ki? Son derece mantıksız ama oluyor nasıl olursa. =)
Son yazdığınız şekilde düzenleyip tekrar denedim, bu sefer oldu. Yardımlarınız için çok çok teşekkür ederim. Sayenizde sorunu çözebildim en sonunda.
Kullanıcı avatarı
SHURZAN
Üye
Mesajlar: 73
Kayıt: 06 Eki 2007 05:34
Konum: İstanbul

Re: Delphi XE / x64 kayıt defteri yetki sorunu [ÇÖZÜLDÜ]

Mesaj gönderen SHURZAN »

Teşekküre değmez.
Bu arada "reg.OpenKey('Software\aaaaa',true);" Şeklinde ikinci paramatreyi true yapılınca açmaya çalıştığın key yoksa yaratır, bu şekilde de key yaratabilir ve key'i open edebilirsin.
Kullanıcı avatarı
SHURZAN
Üye
Mesajlar: 73
Kayıt: 06 Eki 2007 05:34
Konum: İstanbul

Re: Delphi XE / x64 kayıt defteri yetki sorunu [ÇÖZÜLDÜ]

Mesaj gönderen SHURZAN »

x64 işletim sisteminde 32 bit uygulamalar simüle edilerek çalıştırılır.

Registry ile ilgili sorun yukarıdaki gibi aşılabilir FAKAT System32 dizinine erişmek istediğinde benzer sorunlarla karşılaşıyorsun.
Örneğin uygulamandan notepad.exe yi çalıştırmak istesen ve uygulaman 32 bit ise "C:\Windows\SysWOW64" altındaki notepad.exe'yi, uygulaman 64 bit ise "C:\Windows\System32" altındaki notepad.exe' çalıştıracak. Keza "Program Files" Ve "Program Files (x86)" dizin erişim sorunlarıda olacak.

Benim projemde Kısayolları test etme penceresinde bulduğu kısayolun geçersiz mi değil mi test etmeye kalktığında yanlış olarak geçersiz kısayol olarak sonuç elde edebiliyorum çünkü uygulamam 32 bit, kısayol 64 bit progmların dizini olan "Program Files" gösteriyor olmasına rağmen uygulamam kısayolun hedefini "Program Files (x86)" olarak arıyor ve bulamıyor.

Yani anlayacağınız çok işimiz var daha çoook işimiz var.
anoedi
Üye
Mesajlar: 33
Kayıt: 20 Nis 2009 06:20

Re: Delphi XE / x64 kayıt defteri yetki sorunu [ÇÖZÜLDÜ]

Mesaj gönderen anoedi »

Hocam sizin sorunlarınız beni bayağı bir aşıyor anlaşılan. =) Sadece baştaki notepad ile ilgili olan kısımdan birşeyler anlayabildim ve direk shellexecute geldi aklıma.
Onun dışındaki kısımlara tepkisiz kalabildim sadece. =)
Kullanıcı avatarı
SHURZAN
Üye
Mesajlar: 73
Kayıt: 06 Eki 2007 05:34
Konum: İstanbul

Re: Delphi XE / x64 kayıt defteri yetki sorunu [ÇÖZÜLDÜ]

Mesaj gönderen SHURZAN »

Elbette, çünkü kimse henüz tam anlamıyla alışamadı ki sende anlıyasın. Zaman içinde hepimiz alışacağız.
Cevapla