Новый участник
Сообщения: 20
Благодарности: 0
|
Профиль
|
Отправить PM
| Цитировать
После запуска с флешки "MyProga"остаються даные от autorun.inf
Даные реестра:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\{6b3faa70-78d3-11dd-aff1-001b9ee364da}\_Autorun]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\{6b3faa70-78d3-11dd-aff1-001b9ee364da}\_Autorun\Action]
@="Запустить MyProga"
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\{6b3faa70-78d3-11dd-aff1-001b9ee364da}\_Autorun\DefaultLabel]
@="MyProga"
Здесь ключ реестра как я понимаю "@" если я прописываю его то значение не удаляеться. Тогда произвожу удаление по значению .
Код:
_RegDeleteEx1("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\{6b 3faa70-78d3-11dd-aff1-001b9ee364da}\_Autorun\Action", "Запустить MyProga")
Func _RegDeleteEx1($s_Key, $s_Val)
Local $sCurrent_ValName, $iCount = 1
While 1
$sCurrent_ValName = RegEnumVal($s_Key, $iCount)
If @error <> 0 Then ExitLoop
If String(RegRead($s_Key, $sCurrent_ValName)) = $s_Val Then Return RegDelete($s_Key, $sCurrent_ValName)
$iCount += 1
WEnd
Return @error
EndFunc
_RegDeleteEx2("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\{6b 3faa70-78d3-11dd-aff1-001b9ee364da}\_Autorun\DefaultLabel", "MyProga")
Func _RegDeleteEx2($s_Key, $s_Val)
Local $sCurrent_ValName, $iCount = 1
While 1
$sCurrent_ValName = RegEnumVal($s_Key, $iCount)
If @error <> 0 Then ExitLoop
If String(RegRead($s_Key, $sCurrent_ValName)) = $s_Val Then Return RegDelete($s_Key, $sCurrent_ValName)
$iCount += 1
WEnd
Return @error
EndFunc
_RegDeleteEx1("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\{6b 3faa70-78d3-11dd-aff1-001b9ee364da}\_Autorun\Action", "Запустить MyProga")
Func _RegDeleteEx1($s_Key, $s_Val)
Local $sCurrent_ValName, $iCount = 1
While 1
$sCurrent_ValName = RegEnumVal($s_Key, $iCount)
If @error <> 0 Then ExitLoop
If String(RegRead($s_Key, $sCurrent_ValName)) = $s_Val Then Return RegDelete($s_Key, $sCurrent_ValName)
$iCount += 1
WEnd
Return @error
EndFunc
Но мне кажеться получаеться не сильно элигантноне подскажете как можно упростить код .
|
-------
Да всё гениальное заключаеться в простом!!!
Отправлено: 17:06, 09-11-2008
| #1111
|