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.
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.
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.
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.
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. =)