radyofon Posted April 27, 2014 Share Posted April 27, 2014 İyi Çalışmalar arkadaşlar, Registry kayıtları içerisinde bir kaydı bulmak ve varsa silmek istiyorum. Fakat ilgili reg kaydı olmasına rağmen MsgBox var olduğunu söylemiyor. Anahtar yok mesajı çıkıyor. Acaba nerede hata yapıyorum? $uninstall_path = "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" local $var = RegEnumKey($uninstall_path, "{4A03706F-666A-4037-7777-5F2748764D10}") If $var = 1 Then MsgBox(4096, "", "anahtar var", 500) Else MsgBox(4096, "", "anahtar yok", 500) EndIf Quote Link to comment Share on other sites More sharing options...
Editor pairs Posted April 27, 2014 Editor Share Posted April 27, 2014 $var = "1" şeklinde denermisiniz. Muhtemelen string olarak dönüyordur değer. Quote Link to comment Share on other sites More sharing options...
radyofon Posted April 27, 2014 Author Share Posted April 27, 2014 @pairs denedim ama olmadı. Sorun RegEnumkey' de ama neresinde bulamadım. Quote Link to comment Share on other sites More sharing options...
Editor pairs Posted April 27, 2014 Editor Share Posted April 27, 2014 Şurayı bi incele istersen. http://www.autoitscript.com/autoit3/docs/functions/RegEnumKey.htm Quote Link to comment Share on other sites More sharing options...
radyofon Posted April 27, 2014 Author Share Posted April 27, 2014 @pairs Zaten orayı incelemiştim. Yine baktım ve yine de işi çözemedim vesselam. Quote Link to comment Share on other sites More sharing options...
MostWanted Posted April 27, 2014 Share Posted April 27, 2014 (edited) Anahtarın varlığını RegEnumKey ile bulamazsın.O sadece anahtardaki keyleri sıralar.Eğer "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{4A03706F-666A-4037-7777-5F2748764D10}" anahtarı var mı yok mu öğrenmek istiyorsan şöyle yapmalısın: RegRead( "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{4A03706F-666A-4037-7777-5F2748764D10}" , "") if @error then MsgBox(0, "", "Bulamadım ben onu.") endif Spesifik key arıyorsan onu da ekleyebilirsin. Edited April 27, 2014 by MostWanted Quote Link to comment Share on other sites More sharing options...
SimpsoN_Bart Posted April 27, 2014 Share Posted April 27, 2014 Kullandığım bir kaç key fonksiyonu. Aslında _IsRegistryExist işini görür ama _RegReadEX de dolaylı olarak faydası olacaktır. Dönüş değerlerine göre -1 veya false... ConsoleWrite(_IsRegistryExist("HKEY_CURRENT_USER\Control Panel\Desktop", "Test") & @LF) ; False döner yani değer yok ConsoleWrite(_IsRegistryExist("HKEY_CURRENT_USER\Control Panel\Desktop", "CaretWidth") & @LF) ; True döner yani değer var Func _IsRegistryExist($sKeyName, $sValueName) RegRead($sKeyName, $sValueName) Return @error = 0 EndFunc ;==>_IsRegistryExist ConsoleWrite( 'Program Files Directory= ' & _RegReadEX( 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion', 'ProgramFilesDir', '<Key is not present>') & @LF) ConsoleWrite( 'Default Return= ' & _RegReadEX( 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion', 'A Missing Key Test', '<Key is not present>') & ' Error= ' & @error & @LF) Func _RegReadEX($sKeyName, $sValueName, $sDefault) Local $var = RegRead($sKeyName, $sValueName) If @error Then Return SetError(@error,0,$sDefault) Return $var EndFunc Quote Link to comment Share on other sites More sharing options...
radyofon Posted April 28, 2014 Author Share Posted April 28, 2014 Bendeki sorun süslü parantezlerden kaynaklanıyor. Herşeyi denedim çünkü. Bu süslü parantez işi karıştırıyor. Quote Link to comment Share on other sites More sharing options...
MostWanted Posted April 28, 2014 Share Posted April 28, 2014 (edited) Sorun süslü parantezlerden değil.Sorun saçma ama buldum.Biz RegRead'deki value parametresini boş giriyoruz.Ama varsayılan değer en baştan beri hiç atanmamışsa kod bunu bulamıyor.Halbuki o anahar altındaki başka bi değerin adını yazsak ki bunlardan biri muhtemelen current versiondur program çalışacak.Kısaca Şöyle dene; RegRead( "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{4A03706F-666A-4037-7777-5F2748764D10}" , "CurrentVersion") ; anahtarın altında olan başka bi değeri yaz sen if @error then MsgBox(0, "", "Bulamadım ben onu.") else MsgBox(0, "", "Buldum ki onu.") endif Edited April 28, 2014 by MostWanted Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.