MyException - 我的异常网
当前位置:我的异常网» VC/MFC » 使用WinExec打开浏览器的有关问题

使用WinExec打开浏览器的有关问题

www.myexceptions.net  网友分享于:2013-04-10  浏览:7次
使用WinExec打开浏览器的问题
如题,要实现效果:设置一个按钮,点击该按钮后打开某一网页,网页地址从数据库中取。代码如下
	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(RegOpenKeyEx(hkRoot, 
"htmlfile\\shell\\open\\command", 
0, 
KEY_ALL_ACCESS, 
&hSubKey)==ERROR_SUCCESS) 
{
RegEnumValue(hSubKey,//读取注册表,获取默认浏览器的命令行
0, 
ValueName, 
&cbValueName, 
NULL, 
&dwType, 
DataValue, 
&cbDataValue);
strcpy(ShellChar,(char *)DataValue); // 调用参数(主页地址)赋值
CString str;
str.Format("%s", ShellChar);
str.Replace("-nohome","");
str.Replace("\"%1\"","");
str += dz; //dz是从数据库中取的网址,此处是www.google.cn
WinExec(str,SW_SHOW);

else 
{
RegCloseKey(hSubKey);//关闭注册表 
RegCloseKey(hkRoot); 
}
}

在我的电脑上运行没问题,点击按钮,弹出IE打开的谷歌页面,在别人win7的电脑上,弹出下面的错误窗口
这是什么问题啊,请高手指点,谢谢!

------解决方案--------------------
用下面这个吧,更快一些

 ShellExecute(NULL,_T("open"),_T("iexplore.exe"),str,NULL,SW_SHOW);


------解决方案--------------------
建议你不要局限于单字节编码。
------解决方案--------------------
直接输入网址就行了:
ShellExecute(NULL,_T("open"),_T("http://www.baidu.com"),str,NULL,SW_SHOW);
这个API会自动用关联的程序打开文件、URL

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有