请教各位高手,在添加注册表项时出错,不太会,本人是vb菜鸟,请教了! Dim WSH
    Set WSH= CreateObject("WSCRIPT.SHELL") '击活WScript.Shell对象WSH.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\RasMan\Parameters", "ProhibitIpSec", "REG_D     WORD"  '添加注册表一个项的默认值
修改注册表的目的是能在xp系统上跑l2tp协议的vpn连接

解决方案 »

  1.   

    给你个例子参考
    通用里:
    Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long '这个函数用来建立或者打开注册表项
    Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long '这个函数用来设定注册表项的值
    Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long '这个函数用来删除注册表项的值
    Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long '这个函数用来关闭已经打开的注册表项Private Const REG_SZ = 1 '这个常数表示注册表项的值的类型为字符串
    Private Const HKEY_CURRENT_USER = &H80000001 '这个常数表示修改当前用户的注册表项
    Private Const SubKey As String = "Software\Microsoft\Windows\CurrentVersion\Run" '定义要编辑的注册表的子项下面是两个函数
    '接下来,我们写一个函数,来建立自动运行
    Sub RegAutoRun()    On Error Resume Next
        Dim Exe As String
        Dim hKey As Long
        Dim rc As Long
        If Right(App.Path, 1) <> "\" Then
            Exe = App.Path & "\" & App.EXEName & ".exe"
        Else
            Exe = App.Path & App.EXEName & ".exe"
        End If
        rc = RegCreateKey(HKEY_CURRENT_USER, SubKey, hKey)
        If rc = 0 Then
            RegSetValueEx hKey, "AutoStart", 0, REG_SZ, ByVal Exe, LenB(StrConv(Exe, vbFromUnicode)) + 1
            RegCloseKey hKey
        End If
    End Sub 
    '建立自动运行,自然要可以删除自动运行的功能
    Sub DelAutoRun()
        On Error Resume Next    Dim hKey As Long
        Dim rc As Long    rc = RegCreateKey(HKEY_CURRENT_USER, SubKey, hKey)
        If rc = 0 Then
            RegDeleteValue hKey, "AutoStart"
            RegCloseKey hKey
        End If
    End Sub 
      

  2.   

    别给我例子了, 就是我那个报错了, 说注册键值"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\RasMan\Parameters" 的根路径无效
      

  3.   

    你用C:\WINDOWS\system32\regedt32.exe看看你机器里有这个路径么?
      

  4.   

    你用C:\WINDOWS\system32\regedt32.exe看看你机器里有这个路径么?
      

  5.   

    有啊, 我都是按照这个路径复制的,我那个WSH.RegWrite  里面的参数是这么定的吧?
      

  6.   

    那个我也是在网上找的, 我是初次用vb , 最近就是在做vpn在windows环境下的链接,给用户创建,在xp系统下需要改注册表,l2tp协议的
      

  7.   

    执行regedit命令,找到如下位置HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters加入如下注册项:Value Name: ProhibitIpSecData Type: REG_DWORDValue: 1
     就是修改这个东西,能在vb上实现就行了
      

  8.   

    dbcontrols谢谢你的回答,我已经解决了