1.想把某个键值改掉怎么做?
我是先RegDeleteValue再RegCreateKey的,有没有更直接能替换的?注册表的引用不用我管了吧,这就是自动替换的
Sub AddRunSelf()
  Dim AppInfo As String
  Dim Result As String
  Dim hkeyhandle As Long
  '添加自动运行
  On Error GoTo Err:
  AppInfo = App.Path & "\" & App.EXEName & ".exe"
  Result = RegCreateKey(HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run", hkeyhandle)
  Result = RegSetValueEx(hkeyhandle, "YXSoft", 0&, REG_SZ, AppInfo, LenB(StrConv(AppInfo, vbFromUnicode))) '写入中英文混合的实际长度
  Result = RegCloseKey(hkeyhandle)
  Exit Sub
Err:
End Sub
2.想问题一下,增删IE的右键菜单里的条目,对应的键在哪?
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt下
Context 243 为全部连接都可以有菜单 34为图片等[10进制的时候哦]下一部就要使用到了类与NetAnts目录下的NaGet.htm文件的东东了,是用脚本程序来启动相应的动态连接库的;动态连接库来执行你要执行的程序;
明白了么?不明白给俺短信息,请写明贴子的URL号

解决方案 »

  1.   

    http://www.csdn.net/Expert/memberInfo.asp?Roomid=2&typenum=8&tabletype=now&searchKeys=注册表&author=&whichpage=1好好看看:)
      

  2.   

    http://www.csdn.net/Expert/memberInfo.asp?Roomid=2&typenum=8&tabletype=now&searchKeys=注册表&author=&whichpage=1好好看看:)
      

  3.   

    回复人: wgku(云霄) (  ) 信誉:98 那是什么?
      

  4.   

    VB操作注册表:
    http://www.sqreg.com/file/vb/reg_01.htm
    http://www.sqreg.com/file/vb/reg_02.htm
    http://www.sqreg.com/file/vb/reg_03.htm
    http://www.sqreg.com/file/vb/reg_04.htm
    http://www.sqreg.com/file/vb/reg_05.htm
    http://www.sqreg.com/file/vb/reg_06.htm
    http://www.sqreg.com/file/vb/reg_07.htm
      

  5.   

    模块内容没变。
    新加一个变量:
    Dim a As String将retValue = RegQueryValueEx(keyId, subKey, 0, REG_SZ, 0, bufSize)修改为:retValue = RegQueryValueEx(keyId, subKey, 0, REG_SZ, ByVal a, bufSize)。OK。代码如下:'///////////////////////模块内容///////////////////////////
    Option Explicit
    Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    Public 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         ' Note that if you declare the lpData parameter as String, you must pass it By Value.
    Public Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long         ' Note that if you declare the lpData parameter as String, you must pass it By Value.
    Public Declare Function RegReplaceKey Lib "advapi32.dll" Alias "RegReplaceKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpNewFile As String, ByVal lpOldFile As String) As Long
    Public Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
    Public Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As LongPublic Const HKEY_LOCAL_MACHINE = &H80000002
    Public Const HKEY_CURRENT_USER = &H80000001Public Const REG_SZ = 1                         ' Unicode nul terminated string
    Public Const REG_DWORD = 4                      ' 32-bit number
    Public Const REG_BINARY = 3                     ' Free form binary'///////////////////////窗体代码////////////////////////
    Option Explicit
    Private Const RegKey = "NirvanaIII\test"
    Dim subKey As String
    Dim keyId As Long
    Private Sub Command1_Click()'删除HKEY_CURRENT_USER\NirvanaIII\test\Window Width 键Call RegDeleteValue(keyId, "Window Width")
    End Sub
    Private Sub Form_Load()
    Dim retValue As Long
    Dim result As Long
    Dim keyValue As LongDim a As StringDim bufSize As LongretValue = RegCreateKey(HKEY_CURRENT_USER, RegKey, keyId)
    If retValue = 0 Then
       
    '/////////////////  段2    //////////////////////////////
        subKey = "WHeight"
        retValue = RegQueryValueEx(keyId, subKey, 0, REG_SZ, ByVal a, bufSize)
        
        If bufSize < 2 Then
            keyValue = 88
            retValue = RegSetValueEx(keyId, subKey, 0, REG_SZ, keyValue, Len(keyValue) + 1)
        Else
            retValue = RegQueryValueEx(keyId, subKey, 0, REG_SZ, keyValue, bufSize)
        End If
    '/////////////////////////////////////////////////////////////
    '/////////////////  段1  //////////////////////////
        subKey = "Window Width"
        retValue = RegQueryValueEx(keyId, subKey, 0, REG_SZ, ByVal a, bufSize)
        
        If bufSize < 2 Then
            keyValue = 65
            retValue = RegSetValueEx(keyId, subKey, 0, REG_SZ, keyValue, Len(keyValue) + 1)
        Else
            retValue = RegQueryValueEx(keyId, subKey, 0, REG_SZ, keyValue, bufSize)
        End If
    '////////////////////////////////////////////////////////
    End IfEnd Sub
      

  6.   

    模块内容没变。
    新加一个变量:
    Dim a As String将retValue = RegQueryValueEx(keyId, subKey, 0, REG_SZ, 0, bufSize)修改为:retValue = RegQueryValueEx(keyId, subKey, 0, REG_SZ, ByVal a, bufSize)。OK。代码如下:'///////////////////////模块内容///////////////////////////
    Option Explicit
    Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    Public 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         ' Note that if you declare the lpData parameter as String, you must pass it By Value.
    Public Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long         ' Note that if you declare the lpData parameter as String, you must pass it By Value.
    Public Declare Function RegReplaceKey Lib "advapi32.dll" Alias "RegReplaceKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpNewFile As String, ByVal lpOldFile As String) As Long
    Public Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
    Public Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As LongPublic Const HKEY_LOCAL_MACHINE = &H80000002
    Public Const HKEY_CURRENT_USER = &H80000001Public Const REG_SZ = 1                         ' Unicode nul terminated string
    Public Const REG_DWORD = 4                      ' 32-bit number
    Public Const REG_BINARY = 3                     ' Free form binary'///////////////////////窗体代码////////////////////////
    Option Explicit
    Private Const RegKey = "NirvanaIII\test"
    Dim subKey As String
    Dim keyId As Long
    Private Sub Command1_Click()'删除HKEY_CURRENT_USER\NirvanaIII\test\Window Width 键Call RegDeleteValue(keyId, "Window Width")
    End Sub
    Private Sub Form_Load()
    Dim retValue As Long
    Dim result As Long
    Dim keyValue As LongDim a As StringDim bufSize As LongretValue = RegCreateKey(HKEY_CURRENT_USER, RegKey, keyId)
    If retValue = 0 Then
       
    '/////////////////  段2    //////////////////////////////
        subKey = "WHeight"
        retValue = RegQueryValueEx(keyId, subKey, 0, REG_SZ, ByVal a, bufSize)
        
        If bufSize < 2 Then
            keyValue = 88
            retValue = RegSetValueEx(keyId, subKey, 0, REG_SZ, keyValue, Len(keyValue) + 1)
        Else
            retValue = RegQueryValueEx(keyId, subKey, 0, REG_SZ, keyValue, bufSize)
        End If
    '/////////////////////////////////////////////////////////////
    '/////////////////  段1  //////////////////////////
        subKey = "Window Width"
        retValue = RegQueryValueEx(keyId, subKey, 0, REG_SZ, ByVal a, bufSize)
        
        If bufSize < 2 Then
            keyValue = 65
            retValue = RegSetValueEx(keyId, subKey, 0, REG_SZ, keyValue, Len(keyValue) + 1)
        Else
            retValue = RegQueryValueEx(keyId, subKey, 0, REG_SZ, keyValue, bufSize)
        End If
    '////////////////////////////////////////////////////////
    End IfEnd Sub
      

  7.   

    模块内容没变。
    新加一个变量:
    Dim a As String将retValue = RegQueryValueEx(keyId, subKey, 0, REG_SZ, 0, bufSize)修改为:retValue = RegQueryValueEx(keyId, subKey, 0, REG_SZ, ByVal a, bufSize)。OK。代码如下:'///////////////////////模块内容///////////////////////////
    Option Explicit
    Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    Public 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         ' Note that if you declare the lpData parameter as String, you must pass it By Value.
    Public Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long         ' Note that if you declare the lpData parameter as String, you must pass it By Value.
    Public Declare Function RegReplaceKey Lib "advapi32.dll" Alias "RegReplaceKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpNewFile As String, ByVal lpOldFile As String) As Long
    Public Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
    Public Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As LongPublic Const HKEY_LOCAL_MACHINE = &H80000002
    Public Const HKEY_CURRENT_USER = &H80000001Public Const REG_SZ = 1                         ' Unicode nul terminated string
    Public Const REG_DWORD = 4                      ' 32-bit number
    Public Const REG_BINARY = 3                     ' Free form binary'///////////////////////窗体代码////////////////////////
    Option Explicit
    Private Const RegKey = "NirvanaIII\test"
    Dim subKey As String
    Dim keyId As Long
    Private Sub Command1_Click()'删除HKEY_CURRENT_USER\NirvanaIII\test\Window Width 键Call RegDeleteValue(keyId, "Window Width")
    End Sub
    Private Sub Form_Load()
    Dim retValue As Long
    Dim result As Long
    Dim keyValue As LongDim a As StringDim bufSize As LongretValue = RegCreateKey(HKEY_CURRENT_USER, RegKey, keyId)
    If retValue = 0 Then
       
    '/////////////////  段2    //////////////////////////////
        subKey = "WHeight"
        retValue = RegQueryValueEx(keyId, subKey, 0, REG_SZ, ByVal a, bufSize)
        
        If bufSize < 2 Then
            keyValue = 88
            retValue = RegSetValueEx(keyId, subKey, 0, REG_SZ, keyValue, Len(keyValue) + 1)
        Else
            retValue = RegQueryValueEx(keyId, subKey, 0, REG_SZ, keyValue, bufSize)
        End If
    '/////////////////////////////////////////////////////////////
    '/////////////////  段1  //////////////////////////
        subKey = "Window Width"
        retValue = RegQueryValueEx(keyId, subKey, 0, REG_SZ, ByVal a, bufSize)
        
        If bufSize < 2 Then
            keyValue = 65
            retValue = RegSetValueEx(keyId, subKey, 0, REG_SZ, keyValue, Len(keyValue) + 1)
        Else
            retValue = RegQueryValueEx(keyId, subKey, 0, REG_SZ, keyValue, bufSize)
        End If
    '////////////////////////////////////////////////////////
    End IfEnd Sub
      

  8.   

    你的留言问题就是:
    Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    Public Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long          ' Note that if you declare the lpData parameter as String, you must pass it By Value.Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As LongPublic Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
    Public Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As LongPublic Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    Public Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As LongPublic Declare Function RegQueryValue Lib "advapi32.dll" Alias "RegQueryValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpValue As String, lpcbValue As Long) As Long
    Public Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As String, lpcbData As Long) As Long         ' Note that if you declare the lpData parameter as String, you must pass it By Value.Public Const HKEY_LOCAL_MACHINE = &H80000002
    Public Const REG_SZ = 1
    Public Const REG_DWORD = 4