Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] скрипт изменения значения ветки реестра в процессе установки программы (http://forum.oszone.net/showthread.php?t=231244)

adima 25-03-2012 18:58 1886485

скрипт изменения значения ветки реестра в процессе установки программы
 
Требуется изменение значения ветки реестра в процессе установки программы
Алгоритм:
1) ждем появления параметра ветки реестра
2) когда появился параметр в реестре меняем его значение на другое

Iska 25-03-2012 20:20 1886546

Каков глубинный смысл менять именно «в процессе»? Дожидаемся окончания процесса установки и меняем значение параметра.

adima 25-03-2012 21:12 1886591

смысл в том что это антивирус и когда установился он защищает ветки реестра от изменений

ferget 25-03-2012 23:01 1886686

отключить антивирус, поменять значение, включить антивирус

Iska 25-03-2012 23:04 1886688

1. Какой антивирус?
2. Проверьте, есть ли возможность внести изменения до установки — не «затрёт» ли антивирус его своим значением при установке.
3. Если это продолжение уже имевшегося обсуждения в какой-либо из имеющихся тем на форуме — есть смысл привести на него ссылку здесь.

adima 26-03-2012 15:04 1887074

1.ESET Антивирус
2. Возможность есть

Скрипт я нашел но есть прoблемы:

$path = "HKEY_LOCAL_MACHINE\SOFTWARE\7-Zip";
Dim $minidb[1];
For $i=1 To 10
$val=RegEnumVal($path, $i);
If (@error<>0) Then ExitLoop
ReDim $minidb[$i];
$minidb[$i-1]=$val;
Next
While 1
For $i=1 To 10
$val=RegEnumVal($path, $i);
If (@error<>0) Then ExitLoop
If $minidb[$i-1]<>$val Then ;;;;;
MsgBox(48,"Test", "Обнаружены изменения!")
EndIf
Next
WEnd

Проблема:
Через раз вылетает с ошибкой ;;;;; Array variable has incorrect number of subscripts or subscript dimension range exceeded

Iska 27-03-2012 06:21 1887471

Что-то не очень понятное. Всё, что Вам нужно — читать и ждать:
Код:

AutoItSetOption("MustDeclareVars", 1)

Local $sSubKey    = "HKEY_LOCAL_MACHINE\SOFTWARE\7-Zip"
Local $sValueName = "Path2"
Local $sValue

Do
        Sleep(100)

        $sValue = RegRead($sSubKey, $sValueName)
Until $sValue <> ""

MsgBox(48, "Параметр создан", "[" & $sSubKey & "\" & $sValueName & "] = " & $sValue)


Iska 27-03-2012 09:38 1887543

Дополнение: в вышеприведённом коде подразумевается, что созданный параметр будет не пустой. Иначе так и будет крутиться внутри цикла до бесконечности.


Время: 15:44.

Время: 15:44.
© OSzone.net 2001-