Jump to content

Reg Kaydını Bulma Ve Silme


radyofon
 Share

Recommended Posts

İ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
Link to comment
Share on other sites

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 by MostWanted
Link to comment
Share on other sites

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
Link to comment
Share on other sites

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 by MostWanted
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...