我做了个浏览器看到别人打开后会弹出 是否设置此浏览器为默认浏览器如何用vb修改注册表设置默认浏览器

解决方案 »

  1.   

    你用RegShot1.6先扫描一次注册表,在用其他浏览器,比如TT,修改为默认浏览器,再扫描一次注册表,就可以看到修改了哪些地方
      

  2.   

    1.找到HKEY_CLASSES_ROOT\http\shell\open\command,双击"默认",将要用浏览器的可执行文件的完全路径输入到这里,例如:输入“C:\Program Files\Internet Explorer\iexplore.exe”;
    2.然后找到HKEY_CLASSES_ROOT\http\shell\open\ddeexec\Application,双击"默认",设置浏览器名,如果是Firefox则输入Firefox,如果是IE则输入IExplore。如果写错,在浏览器里设置为默认浏览器的时候,会提示你当前的浏览器不是默认的
      

  3.   

    楼上既然把位置找到了,我就给你提供一个模块,修改这2个位置即可完成你的要求
    你仅需要修改注册表,不必创建,请适当修改把下面的内容存成.bas(模块)文件,以后只要把这个文件加入你的工程就可以
    直接用这些函数了 ' ----------------- 
    ' ADVAPI32 
    ' ----------------- 
    ' function prototypes, constants, and type definitions 
    ' for Windows 32-bit Registry API Public Const HKEY_CLASSES_ROOT = &H80000000 
    Public Const HKEY_CURRENT_USER = &H80000001 
    Public Const HKEY_LOCAL_MACHINE = &H80000002 
    Public Const HKEY_USERS = &H80000003 
    Public Const HKEY_PERFORMANCE_DATA = &H80000004 
    Public Const ERROR_SUCCESS = 0& ' Registry API prototypes Declare Function RegCloseKey Lib "advapi32.dll" (ByVal Hkey As Long) A
    s Long 
    Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA"
     (ByVal Hkey As Long, ByVal lpSubKey As String, phkResult As Long) As 
    Long 
    Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA"
     (ByVal Hkey As Long, ByVal lpSubKey As String) As Long 
    Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteVal
    ueA" (ByVal Hkey As Long, ByVal lpValueName As String) As Long 
    Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (By
    Val Hkey As Long, ByVal lpSubKey As String, phkResult As Long) As LongDeclare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryVal
    ueExA" (ByVal Hkey As Long, ByVal lpValueName As String, ByVal lpReser
    ved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueEx
    A" (ByVal Hkey As Long, ByVal lpValueName As String, ByVal Reserved As
     Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As L
    ong 
    Public Const REG_SZ = 1                         ' Unicode nul terminat
    ed string 
    Public Const REG_DWORD = 4                      ' 32-bit number Public Sub SaveKey(Hkey As Long, strPath As String) 
    Dim keyhand& 
    r = RegCreateKey(Hkey, strPath, keyhand&) 
    r = RegCloseKey(keyhand&) 
    End Sub 
    Public Function GetString(Hkey As Long, strPath As String, strValue As
     String) As String Dim keyhand As Long 
    Dim datatype As Long 
    Dim lResult As Long 
    Dim strBuf As String 
    Dim lDataBufSize As Long 
    Dim intZeroPos As Integer 
    r = RegOpenKey(Hkey, strPath, keyhand) 
    lResult = RegQueryValueEx(keyhand, strValue, 0&, lValueType, ByVal 0&,
     lDataBufSize) 
    If lValueType = REG_SZ Then 
        strBuf = String(lDataBufSize, " ") 
        lResult = RegQueryValueEx(keyhand, strValue, 0&, 0&, ByVal strBuf,
     lDataBufSize) 
        If lResult = ERROR_SUCCESS Then 
            intZeroPos = InStr(strBuf, Chr$(0)) 
            If intZeroPos > 0 Then 
                GetString = Left$(strBuf, intZeroPos - 1) 
            Else 
                GetString = strBuf 
            End If 
        End If 
    End If 
    End Function 
    Public Sub SaveString(Hkey As Long, strPath As String, strValue As Str
    ing, strdata As String) 
    Dim keyhand As Long 
    Dim r As Long 
    r = RegCreateKey(Hkey, strPath, keyhand) 
    r = RegSetValueEx(keyhand, strValue, 0, REG_SZ, ByVal strdata, Len(str
    data)) 
    r = RegCloseKey(keyhand) 
    End Sub 
    Function GetDword(ByVal Hkey As Long, ByVal strPath As String, ByVal s
    trValueName As String) As Long 
    Dim lResult As Long 
    Dim lValueType As Long 
    Dim lBuf As Long 
    Dim lDataBufSize As Long 
    Dim r As Long 
    Dim keyhand As Long r = RegOpenKey(Hkey, strPath, keyhand)  ' Get length/data type 
    lDataBufSize = 4 
         
    lResult = RegQueryValueEx(keyhand, strValueName, 0&, lValueType, lBuf,
     lDataBufSize) If lResult = ERROR_SUCCESS Then 
        If lValueType = REG_DWORD Then 
            GetDword = lBuf 
        End If 
    'Else 
    '    Call errlog("GetDWORD-" & strPath, False) 
    End If r = RegCloseKey(keyhand) 
         
    End Function Function SaveDword(ByVal Hkey As Long, ByVal strPath As String, ByVal 
    strValueName As String, ByVal lData As Long) 
        Dim lResult As Long 
        Dim keyhand As Long 
        Dim r As Long 
        r = RegCreateKey(Hkey, strPath, keyhand) 
        lResult = RegSetValueEx(keyhand, strValueName, 0&, REG_DWORD, lDat
    a, 4) 
        'If lResult <> error_success Then Call errlog("SetDWORD", False) 
        r = RegCloseKey(keyhand) 
    End Function Public Function DeleteKey(ByVal Hkey As Long, ByVal strKey As String) Dim r As Long 
    r = RegDeleteKey(Hkey, strKey) 
    End Function Public Function DeleteValue(ByVal Hkey As Long, ByVal strPath As Strin
    g, ByVal strValue As String) 
    Dim keyhand As Long 
    r = RegOpenKey(Hkey, strPath, keyhand) 
    r = RegDeleteValue(keyhand, strValue) 
    r = RegCloseKey(keyhand) 
    End Function 
      

  4.   

    经过反复测试 
    我发现现在是默然是TT浏览器我发现找到HKEY_CLASSES_ROOT\http\shell,双击,这里写着 tt浏览器的名称 改成你自己的浏览器 比如是 flyie然后在 跟 fly项 里面想和值和TT设置一样就可以了这个方法肯定可行下面这个方法恐怕是没有装过TT 和遨游等浏览器的时候才可以用的
    1.找到HKEY_CLASSES_ROOT\http\shell\open\command,双击"默认",将要用浏览器的可执行文件的完全路径输入到这里,例如:输入“C:\Program   Files\Internet   Explorer\iexplore.exe”; 
    2.然后找到HKEY_CLASSES_ROOT\http\shell\open\ddeexec\Application,双击"默认",设置浏览器名,如果是Firefox则输入Firefox,如果是IE则输入IExplore。如果写错,在浏览器里设置为默认浏览器的时候,会提示你当前的浏览器不是默认的