Тема: VBS: как запретить параметр, сохранив его значение?
Добрый день, коллеги.
Итак, имеем IE8:
Сервис - Свойства обозревателя - Подключения - Настройка сети.
В открывшемся окне видим, в частности чекбокс Использовать сценарий автоматической настройки и под ним строковый параметр Адрес.
Для дальнейших экспериментов - если строка Адрес пустая - нужно что-то в неё ввести, например совершенно безобидный параметр:
http://localhost:0/proxy.pac
Очевидно, что перед этим необходимо поставить галку в чекбоксе Использовать сценарий автоматической настройки .
Теперь Вы легко можете убедиться, что выставляя или снимая галку в чекбоксе Использовать сценарий автоматической настройки , строковый параметр Адрес становится активным или "серым".
Но! При этом записанное в него значение сохраняется.
Можно выходить, снова входить в IE - значение все равно сохраняется, даже если чекбокс не отмечен.
За значение этого параметра отвечает параметр реестра:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings - AutoConfigURL
Заковыка в том, что в этом параметре как раз и хранится введенная строка.
Перерыл весь ИНЕТ - никак не могу понять, как манипулировать именно чекбоксом?
Как "снять галочку" - но сохранить строковое значение адреса?
Везде один совет - установить AutoConfigURL пустой строкой.
Но я так не хочу делать - тогда я теряю значение.
Как мне сделать в скрипте то же самое, что я легко делаю руками - снимаю галочку, сохраняя значение адреса?
Сам скрипт прост - секрет где-то в реестре:
DIM sKey, sValue, strValue
Dim oReg
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
Const HKCU = &H80000001
' AutoConfig
sKey = "Software\Microsoft\Windows\CurrentVersion\Internet Settings"
sValue = "AutoConfigURL"
strValue = ""
oReg.SetStringValue HKCU, sKey, sValue, strValue
' oReg.DeleteValue HKCU, sKey, sValue
WScript.Quit 0Скрипт заменяет адрес на пустышку, и чекбокс действительно снимается (если он перед этим был отмечен галочкой).
Еще раз повторю - я хочу только снять чекбокс, не затирая значение адреса.

