Что нового

[Реестр] Не работает REGDELETE ()

kalpak44

Новичок
Сообщения
45
Репутация
1
Код:
$key = "HKEY_CLASSES_ROOT\Installer\Products\"
   
KeyList($key)
Func KeyList($key)
    $i = 1
    While 1
        $var = RegEnumKey($key, $i)
        If @error <> 0 then ExitLoop        
        $i = $i + 1 
		read ($key & $var)
		
    WEnd    
 EndFunc
 
Func read($key)
   $product = RegRead($key, "ProductName")
If $product = "Skypy" then RegDelete($key)
EndFunc


Не удаляется раздел из реестра :stars: :stars:
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Попробуй так:
Код:
Global $key = "HKEY_CLASSES_ROOT\Installer\Products\"
   
KeyList($key)

Func KeyList($key)
    $i = 1
    While 1
        $var = RegEnumKey($key, $i)
        If @error <> 0 then ExitLoop        
        $i = $i + 1 
        read ($key & $var)        
    WEnd    
EndFunc
 
Func read($key)
	$product = RegRead($key, "ProductName")
	If StringInStr($product, "Skype") then RegDelete($key)
EndFunc


PS. Skypy я так понимаю - Skype, да ? :rofl:
 
Автор
K

kalpak44

Новичок
Сообщения
45
Репутация
1
:rofl: :rofl: :rofl: :rofl: бывает ... но всеже и сново не фурычать :'( :'( :'( :'( :stars: :stars: :stars: там ключ всеравно что skypy ставь, что skype :scratch: :scratch: :scratch: не удаляет, хоть убей ....
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
kalpak44
Есть такая штука, как отладка программы (смотреть значения переменных
и исправлять ошибки)
В AutoIt не знаю как это делать, но делаю своим кустарным способом
Код:
Global $key = "HKEY_CLASSES_ROOT\Installer\Products\"
   
KeyList($key)

Func KeyList($key)
    $i = 1
    While 1
        $var = RegEnumKey($key, $i)
        If @error <> 0 then ExitLoop        
        $i = $i + 1 
        read ($key & $var)        
    WEnd    
EndFunc
 
Func read($key)
    $product = RegRead($key, "ProductName")
	ConsoleWrite($product&@CRLF) ;для отладки (посмотреть что там)	
    If StringInStr($product, "Skype") then 
		;RegDelete($key)
		MsgBox(0, "Что там у нас", $key) ;для отладки	(и вот, когда появится это заветное сообщение, тогда условие соответствует истине и выполнится RegDelete($key)	
	EndIf	
EndFunc
 
Автор
K

kalpak44

Новичок
Сообщения
45
Репутация
1
в том и дело сообщение в msbox отображается нормик, а вот regdelete() не удаляет тот самый раздел реестра, выскакивающий на msbox (тестирую на win 7 x86 virtualbox) :( пробывал и чисто
Код:
regdelete('HKEY_CLASSES_ROOT\Installer\Products\блаблабла')

ща попробую на другой машине :( :(
тож самое не удаляет :'(


Добавлено:
Сообщение автоматически объединено:

Тема решилась сама по себе когда установил Visual C++ и Direct X :stars: :stars: :stars:
 
Верх