Что нового

не изменяются значения в реестре после того как отработает скрипт

alex2887

Новичок
Сообщения
57
Репутация
0
Всем Доброго Дня, ситуация следующая: я написал скрипт, который меняет Параметр реестра, отвечающий за приоритет CPU и I/O для программ в автозагрузке (статья Вадима Стеркина "Ускорение загрузки Windows одним твиком реестра"). Скрипт отрабатывает нормально без ошибок, но после того, как откроешь редактор реестра вновь, то параметр остается таким же, какой он был до того как его изменили, т.е. равным нулю. Пробовал и с помощью кнопок взаимодействовать, тоже не получилось, последний раз сделал с помощью кликов мышки- опять не сохранилось значение, хотя скрипт отрабатывает без ошибок. Изначально на тот раздел реестра имеет права на чтение и запись только TrustedInstaller, мне нужно дать права на запись учетной записи "Администратор", после изменения значения вернуть права по умолчанию. Заранее спасибо. Вручную проделывать эту операцию довольно муторно, хотелось бы автоматизировать этот процесс.
Вот мой скрипт.
Код:
#RequireAdmin     ;Запускаем от "Администратора"
AutoItSetOption('MouseCoordMode', 2) ;устанавливаем отсчет координат относительно клиентской области активного окна
AutoItSetOption('PixelCoordMode', 2)  ;устанавливаем способ отсчёта координат используемый в Pixel-функциях относительно клиентской области активного окна
Run('regedit') ;Запуск редактора реестра
Sleep(1500)
WinActivate('Редактор реестра')
WinMenuSelectItem('Редактор реестра', '', '&Правка', '&Найти...	CTRL+F')
WinActivate('Поиск')
MouseClick('Left', 24, 108)
Sleep(1500)
MouseClick('Left', 23, 88)
Sleep(1500)
MouseClick('Left', 101, 19)
Sleep(1500)
Send('DelayedApps')
Sleep(1500)
MouseClick('Left', 349, 20)
WinWaitActive('Редактор реестра')
Sleep(1500)
WinMenuSelectItem('Редактор реестра', '', '&Правка', 'Разре&шения...')
Sleep(1500)
WinActivate('Разрешения для группы "DelayedApps"')
MouseClick('Left', 287, 337)
Sleep(1500)
WinActivate('Дополнительные параметры безопасности  для "DelayedApps"')
Sleep(1500)
MouseClick('left', 154, 18)
Sleep(1500)

; Найти зеленый пиксель в прямоугольнике 0,0-603, 397 Цвет: 0x63AD98. Это выбрано для того, чтобы скрипт выбрал пользователя, т.к. учетная запись может быть выше или ниже учетной записи "Администратор" и значек у него отличается по цвету и ни одной программой я не смог получить информацию что написано в том окне. Пришлось таким способом и он работает без ошибок.

$coord = PixelSearch(8, 9, 611, 406, 0x63AD98)
If Not @error Then
   MouseMove($coord [0], $coord [1], 2)
   Sleep(2500)
   MouseClick('left', $coord [0], $coord [1], 2)
EndIf

Sleep(1500)
MouseClick('Left', 25, 361)
Sleep(1500)
MouseClick('Left', 404, 426)
WinActivate('Разрешения для группы "DelayedApps"')
Send('{TAB 5}')
Sleep(1500)
Send('{DOWN}')
MouseClick('Left', 238, 232)
Sleep(1500)
MouseClick('Left', 294, 406)
Sleep(1500)
MouseClick('Left', 154, 403)
Sleep(1500)
Send('{TAB}')
Sleep(1500)
Send('{DOWN 4}')
Sleep(1500)
Send('{ENTER}')
Sleep(1500)
WinActivate('Изменение параметра DWORD (32 бита)')
Mouseclick('Left', 178, 104)
Sleep(1500)
MouseClick('Left', 25, 84)
Sleep(1500)
Send('{BACKSPACE}')
Sleep(1500)
Send('120')
MouseClick('Left', 199, 142)
Sleep(1500)
WinMenuSelectItem('Редактор реестра', '', '&Правка', 'Разре&шения...')
Send('{DOWN}')
Mouseclick('Left', 237, 234)
Sleep(1500)
MouseClick('Left', 288, 337)
Sleep(1500)
WinActivate('Дополнительные параметры безопасности  для "DelayedApps"')
MouseClick('Left', 157, 19)
Sleep(1500)
MouseClick('Left', 141, 325)
Sleep(1500)
Send('NT Service\TrustedInstaller')
Sleep(1500)
MouseClick('Left', 344, 201)
Sleep(1500)
MouseClick('Left', 28, 364)
Sleep(1500)
MouseClick('Left', 412, 427)
WinActivate('Разрешения для группы "DelayedApps"')
Sleep(1500)
MouseClick('Left', 296, 404)
Sleep(1500)
MouseClick('Left', 161, 400)
Sleep(1500)
WinClose('Редактор реестра')
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Не пробовали всё это сделать через
Код:
RegWrite ( "keyname" [, "valuename" , "type" , value ] )
Не получится, прав нет...
 
Автор
A

alex2887

Новичок
Сообщения
57
Репутация
0
Ra40, этот параметр есть в реестре изначально, он равен нулю, мне нужно сделать 120 в десятичной системе исчисления.
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
этот параметр есть в реестре изначально
я понимаю, что есть. Но и изменить не получается , так как у админа нет прав на его изменение. Иначе можно было-бы сделать так
Код:
$Keyname='HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\DelayedApps'
$Key='Delay_Sec'
RegWrite($Keyname,$Key,'REG_DWORD',120)
 
Автор
A

alex2887

Новичок
Сообщения
57
Репутация
0
Значит ничего нельзя будет сделать :'(? Никак нельзя решить эту проблему?..
 

Prog

Продвинутый
Сообщения
537
Репутация
65
alex2887 [?]
статья Вадима Стеркина "Ускорение загрузки Windows одним твиком реестра"
В статье написано что для записи в этот раздел реестра нужно иметь права TrustedInstaller.
Так же есть ссылка на программу Trusted Shell позволяющую их получить. На странице имеется исходник. Скачивайте его и изучайте.
 
Верх