2013-09-23 2 views
0

Я пытался найти множество различных решений для создания сценария, который с 1 кликом может изменить некоторые настройки реестра в Skype. Я попытался выполнить прямой скриптинг даже с использованием задержки и отправки ввода, но ничего не работает.Получение VBS-скрипта для изменения реестра

Ближайший я получил следующий:

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Skype\Phone] 
"ProxySetting"=- 
"ProxyAddress"=- 
"DisableUDP"=- 

Однако это по-прежнему приводит к окну подтверждения от «RegistryEditor». Я попытался получить сценарий для отправки ввода, и я попробовал сделать отдельный скрипт VBS для запуска этого файла и отправить дважды, чтобы обработать окно подтверждения, но без «гладкого» успеха.

Какое должно быть правильное решение?

+0

Я нашел решение на мой собственный вопрос. Вы можете запускать файлы реестра бесшумно, как это: objShell.Run «Regedit/s \\ путь \ registry.reg или даже так: regedit.exe/s regfile.reg –

+1

Сообщение ответ сами так люди могут искать и находить ответ вместе с вопросом. –

+0

Хотел бы я, но у меня пока нет достаточной репутации. –

ответ

1

Использование regedit /s возможно, но немного неудобно, так как вам нужно будет создать файл с настройками, а затем импортировать этот файл. И даже если мы проигнорировали это, решение все еще имело проблему, что regedit не возвращает код состояния, указывающий, был ли импорт успешным или нет. Последнее может быть решена путем замены regedit.exe с reg.exe:

rc = objShell.Run("reg import \\host\share\registry.reg", 0, True) 

Однако, это ненужно импортировать внешний файл. VBScript может непосредственно создавать, управлять и удалять ключи и значения реестра, либо с помощью WshShell объекта:

Set sh = CreateObject("WScript.Shell") 

sh.RegDelete "HKLM\SOFTWARE\Policies\Skype\Phone\ProxySetting" 
sh.RegDelete "HKLM\SOFTWARE\Policies\Skype\Phone\ProxyAddress" 
sh.RegDelete "HKLM\SOFTWARE\Policies\Skype\Phone\DisableUDP" 

или через WMI:

Const HKLM = &h80000001 
Const key = "SOFTWARE\Policies\Skype\Phone" 

Set reg = GetObject("winmgmts://./root/default:StdRegProv") 

rc1 = reg.DeleteValue(HKLM, key, "ProxySetting") 
rc2 = reg.DeleteValue(HKLM, key, "ProxyAddress") 
rc3 = reg.DeleteValue(HKLM, key, "DisableUDP") 
Смежные вопросы