您的位置:首页 > 运维架构 > 网站架构

获取网站图标

2010-11-03 22:03 267 查看
/****************************************************************************
通过不断分析网站路径的方法获得网站图标。
比如网站:http://hi.baidu.com/qiujiejia/
则枚举所有的可能网址直到找到icon为止:
可能一:http://hi.baidu.com/qiujiejia/favicon.ico
可能二:http://hi.baidu.com/favicon.ico
但此方法并不是万能的。
****************************************************************************/
bool GetWebsiteIcon(TCHAR* WebSite,TCHAR* IconName)
{
TCHAR* pos=WebSite+_tcslen(WebSite);

//如果没有斜杠,补上
if ( *(pos-1)!='/' )
{
*(pos)='/';
*(pos+1)=NULL;
}
do
{
if (*pos=='/')
{
_tcscpy(pos+1,_T("favicon.ico"));
if (0==URLDownloadToFile(NULL,WebSite,IconName,NULL,NULL))
{
//判断图标是否有效
HICON hIcon=ExtractIcon(NULL,IconName,0);
if (hIcon)
{
DestroyIcon(hIcon);
return true;
}
}
}
//如果提取的路径已剩下“http://” ,则返回错误
if (pos-8<WebSite)
return false;
pos--;
}
while(1);
}
void CDemoDlg::OnButton1()
{
TCHAR WebSite[1000]={0};
::GetWindowText(::GetDlgItem(m_hWnd,IDC_EDIT1),WebSite,sizeof(WebSite)/sizeof(TCHAR)-20);

if (GetWebsiteIcon(WebSite,_T("c://df.ico")))
{
MessageBox("successful");
}
else
{
MessageBox("failed");
}
}
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  website null c