难忘经典吧 关注:141贴子:2,176
  • 0回复贴,共1

vc使用默认的浏览器打开网页代码

收藏回复

  • 219.140.173.*
可以有两种的方式
第一:通过winecec()函数,但是有取得注册表的键值
第二:通过shellexec()他很简单 就是一句话
ShellExecute(NULL,"open","f:\\11.htm",NULL,NULL,SW_SHOW);
 
 
 
把第一种的代码//   HKEY  hKetRoot,hkeySub;
//   char ValueName[MAX_PATH];
//   unsigned char DataValue[MAX_PATH];
//   unsigned long cbValueName=MAX_PATH;
//   unsigned long cbDataValue=MAX_PATH;
//   char IE[MAX_PATH];
//   DWORD dwType;
//   if(RegOpenKey(HKEY_CLASSES_ROOT,NULL,&hKetRoot)==ERROR_SUCCESS)//hKetRoot接受打开键值得HANDLE
//   {
//    if(RegOpenKeyEx(hKetRoot,"htmlfile\\shell\\open\\command",0,KEY_ALL_ACCESS,&hkeySub)==ERROR_SUCCESS)
//    {   //列举了指定打开得注册表得值
//     RegEnumValue(hkeySub,0,ValueName,&cbValueName,NULL,&dwType,DataValue,&cbDataValue);
//     strcpy(IE,(char *)DataValue);
//     strcat(IE,"F:\\11.htm");
//     //q启动浏览器
//     WinExec(IE,SW_SHOW);
//
//    }
//    else
//     MessageBox("浏览器打开失败","信息提示",MB_OK);
//
//   }
//        else
//     MessageBox("浏览器打开失败","信息提示",MB_OK);
//   RegCloseKey(hKetRoot);
//    RegCloseKey(hkeySub);
 
RegOpenKeyEx
RegOpenKeyEx()

函数功能描述:打开一个制定的注册表键

函数原型:

LONG RegOpenKeyEx(
                   HKEY hKey,         // 已经打开键的句柄
                   LPCTSTR lpSubKey,  // 子键的名称
                   DWORD ulOptions,   // 保留
                   REGSAM samDesired, // 安全访问标记
                   PHKEY phkResult    // 指向将要打开键的句柄
);

参数:

    hKey
        [输入] 当前打开或者以下预定义的键。
                            HKEY_CLASSES_ROOT
                            HKEY_CURRENT_CONFIG
                            HKEY_CURRENT_USER
                            HKEY_LOCAL_MACHINE
                            HKEY_USERS
        Windows NT/2000/XP: HKEY_PERFORMANCE_DATA
          Windows 95/98/Me: HKEY_DYN_DATA

    lpSubKey
        [输入] 指向一个非中断字符串包含将要打开键的名称。如果参数设置为NULL 或者指向一个空字符串,过程将打开一个新的句柄由hKey参数确定的值。这种情况下,过程不会关闭先前已经打开的句柄。


    ulOptions
        保留,必须设置为 0
      
    samDesired
        [输入] 对指定键希望得到的访问权限的访问标记。这个参数可以使下列值的联合。
                值                                         Meaning
            KEY_CREATE_LINK                     许可创建一个符号连接
            KEY_CREATE_SUB_KEY                  许可创建子键
            KEY_ENUMERATE_SUB_KEYS              许可列举子键
            KEY_EXECUTE                         许可读访问
            KEY_NOTIFY                          许可提供更该通知
            KEY_QUERY_VALUE                     许可查询子键数据
            KEY_SET_VALUE                       许可设置子键数据
            KEY_ALL_ACCESS                      联合了 KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS,
                                                KEY_NOTIFY, KEY_CREATE_SUB_KEY, KEY_CREATE_LINK,
                                                KEY_SET_VALUE 访问权限并且加上所有的标准访问权限
                                                除了SYNCHRONIZE  
            KEY_READ                            联合了 STANDARD_RIGHTS_READ, KEY_QUERY_VALUE,
                                                KEY_ENUMERATE_SUB_KEYS,KEY_NOTIFY 访问权限
            KEY_WOW64_64KEY                     Windows XP: 使64位或者32位应用程序打开64位键
            KEY_WOW64_32KEY                     Windows XP: 使64位或者32位应用程序打开32位键
            KEY_WRITE                           联合 STANDARD_RIGHTS_WRITE, KEY_SET_VALUE,  
                                                KEY_CREATE_SUB_KEY访问权限

    phkResult
        [输出] 指向一个被打开键返回的句柄的指针。当不再需要句柄,必须调用 RegCloseKey 关闭它 



1楼2008-05-12 14:29回复