0

我一直在尝试许多不同的解决方案来制作一个脚本,只需单击一下就可以更改Skype中的一些注册表设置。即使使用延迟和发送输入,我也尝试过直接编写脚本,但似乎没有任何效果。

我得到的最接近的是以下内容:

Windows Registry Editor Version 5.00

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

但是,这仍然会导致来自“ RegistryEditor ”的确认框。我尝试让脚本发送输入,我尝试制作一个单独的 VBS 脚本来运行此文件并发送输入两次以处理确认框,但没有“顺利”成功。

什么是合适的解决方案?

4

1 回答 1

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")
于 2013-09-23T15:22:19.950 回答