可以有两种的方式
第一:通过winecec()函数,但是有取得注册表的键值
第二:通过shellexec()他很简单 就是一句话
ShellExecute(NULL,"open","f:\\11.htm",NULL,NULL,SW_SHOW);
把第一种的代码
HKEY hkRoot,hSubKey; //定义注册表根关键字及子关键字 char ValueName[256]; unsigned char DataValue[256]; unsigned long cbValueName=256; unsigned long cbDataValue=256; char ShellChar[256]; //定义命令行 DWORD dwType; //打开注册表根关键字 if(RegOpenKey(HKEY_CLASSES_ROOT,NULL,&hkRoot)==ERROR_SUCCESS) { //打开子关键字 if(RegOpenKeyExA(hkRoot, "htmlfile\\shell\\open\\command", 0, KEY_ALL_ACCESS, &hSubKey)==ERROR_SUCCESS) { //读取注册表,获取默认浏览器的命令行 RegEnumValueA(hSubKey, 0, ValueName, &cbValueName, NULL, &dwType, DataValue, &cbDataValue); // 调用参数(主页地址)赋值 strcpy(ShellChar,(char *)DataValue); strcat(ShellChar, "www.baidu.com"); // 启动浏览器 WinExec(ShellChar,SW_SHOW); } else TRACE("WEB浏览器打开错误!"); } else TRACE("WEB浏览器打开错误!"); //关闭注册表 RegCloseKey(hSubKey); RegCloseKey(hkRoot);
RegOpenKeyEx
RegOpenKeyEx() 函数功能描述:打开一个制定的注册表键 函数原型: LONG RegOpenKeyEx( HKEYhKey, //已经打开键的句柄 LPCTSTRlpSubKey, // 子键的名称 DWORDulOptions, // 保留 REGSAMsamDesired, // 安全访问标记 PHKEYphkResult //指向将要打开键的句柄 ); 参数: hKey [输入]当前打开或者以下预定义的键。 HKEY_CLASSES_ROOT HKEY_CURRENT_CONFIG HKEY_CURRENT_USER HKEY_LOCAL_MACHINE HKEY_USERS WindowsNT/2000/XP: HKEY_PERFORMANCE_DATA Windows95/98/Me: HKEY_DYN_DATA lpSubKey [输入]指向一个非中断字符串包含将要打开键的名称。如果参数设置为NULL或者指向一个空字符串,过程将打开一个新的句柄由hKey参数确定的值。这种情况下,过程不会关闭先前已经打开的句柄。 ulOptions 保留,必须设置为0 samDesired [输入]对指定键希望得到的访问权限的访问标记。这个参数可以使下列值的联合。 值 |