Функция _JumpRegistry

 ↑  ←  Описание функции


_JumpRegistry

Прыжок в раздел реестра используя Regedit.

_JumpRegistry ( $sKey )

Параметры

$sKey Раздел реестра

Возвращаемое значение

Успех:Возвращает 0, если успешный запуск Regedit
Ошибка:Возвращает 1 и устанавливает @error равным 1

Примечания

Успех в данной функции является запуск Regedit, функции перехода в раздел не проверяются.

См. также

_RegValueExists

Пример

; AZJIO
_JumpRegistry('HKEY_CURRENT_USER\Software\Microsoft\Notepad')

Func _JumpRegistry($sKey)
    Local $hWnd, $hControl, $aKey, $i
    If Not ProcessExists("regedit.exe") Then
        Run(@WindowsDir & '\regedit.exe')
        If Not WinWaitActive('[CLASS:RegEdit_RegEdit]', '', 3) Then Return SetError(1, 1, 1)
    EndIf
    If Not WinActive('[CLASS:RegEdit_RegEdit]') Then WinActivate('[CLASS:RegEdit_RegEdit]')

    $hWnd = WinGetHandle("[CLASS:RegEdit_RegEdit]")
    $hControl = ControlGetHandle($hWnd, "", "[CLASS:SysTreeView32; INSTANCE:1]")

    $aKey = StringSplit($sKey, '\')
    $sKey = '#0'
    For $i = 1 To $aKey[0]
        ControlTreeView($hWnd, "", $hControl, "Expand", $sKey)
        $sKey &= '|' & $aKey[$i]
    Next
    ControlTreeView($hWnd, "", $hControl, "Expand", $sKey)
    ControlTreeView($hWnd, "", $hControl, "Select", $sKey)
EndFunc

Exit
; Упрощённый способ, недостаток которого перезапуск regedit.exe для последующего прыжка
RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit", "LastKey", "REG_SZ", "HKEY_CURRENT_USER\Software\Microsoft\Notepad")
Run('regedit.exe')