| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 832 人关注过本帖
标题:VC++ 打开的网页为何不能同时刷新?
只看楼主 加入收藏
文羽弈
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2011-7-15
结帖率:100%
收藏
已结贴  问题点数:25 回复次数:4 
VC++ 打开的网页为何不能同时刷新?
图片附件: 游客没有浏览图片的权限,请 登录注册

我开发了一软件,当单击“开始”按钮时,文本框中输入的网址都能够同时打开,且每隔一定时间这些网页会同时刷新一次。但经测试我发现这些网页并没有同时刷新,而是只刷新当前切换的网页,我想请教一下,如何才能每隔一定时间同时刷新打开的网页呢?
当单击“开始”按钮时,代码如下:
void CWebLoginDlg::OnBnClickedStart()
{
    // TODO: 在此添加控件通知处理程序代码
    UpdateData(true);
    if(m_time==""&&m_website=="")
    {
        int a=MessageBox(L"请输入间隔时间和网址!",L"提示信息",MB_ICONINFORMATION);
        return;
    }
    if(m_time==""&&m_website!="")
    {
        int a=MessageBox(L"请输入间隔时间!",L"提示信息",MB_ICONINFORMATION);
        return;
    }
    if(m_time!=""&&m_website=="")
    {
        int a=MessageBox(L"请输入网址!",L"提示信息",MB_ICONINFORMATION);
        return;
    }
    CString szData=m_website.TrimLeft();
    CStringList szList;
    CString szTemp;
    int i=0;
    while(AfxExtractSubString(szTemp,szData,i++,'\n'))
    {
          szList.AddTail(szTemp);
    }

    for(int i=0;i<szList.GetCount();i++)
    {
        ShellExecuteW(NULL,L"open",szList.GetAt(szList.FindIndex(i)),NULL,NULL,SW_SHOWNORMAL);//打开网址对应的网页
    }
    for(i=0;;i++)//死循环,每隔一定时间就打开一次网页,并同时刷新这些网页
    {
        DWORD show=_tcstoul(m_time,NULL,10);  
        Sleep(show*1000);//设置间隔时间
       // for(int i=0;i<szList.GetCount();i++)//注释掉了
        //{
            HWND  hIE;  
            hIE=::FindWindow(NULL,NULL);
            if(hIE!=NULL)
            {   
                ::PostMessage(hIE,WM_KEYDOWN,VK_F5,1);
                ::PostMessage(hIE,WM_KEYUP,VK_F5,1); //向窗口发送“F5”以实现刷新网页的目的
            }
        //}
    }
}
搜索更多相关主题的帖子: 输入的网址 提示信息 处理程序 文本框 软件 
2011-08-02 16:38
随心
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:12
帖 子:2577
专家分:250
注 册:2007-8-12
收藏
得分:10 
hIE=::FindWindow(NULL,NULL); // 如何能保证Find到5个窗口,
可以枚举一下窗口 ,如果是IE,则发送F5按下的消息

天之道,利而不害。圣人之道,为而不争。信言不美,美言不信。善者不辩,辩者不善。知者不博,博者不知。
2011-08-03 15:19
文羽弈
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2011-7-15
收藏
得分:0 
回复 2楼 随心
关键是如何枚举想要打开的网页窗口呢?很想知道,给点儿代码更好,谢谢!

[ 本帖最后由 文羽弈 于 2011-8-3 17:07 编辑 ]
2011-08-03 17:02
随心
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:12
帖 子:2577
专家分:250
注 册:2007-8-12
收藏
得分:15 
程序代码:
bool  CALLBACK lpEnumFunc(HWND hwnd,LPARAM lParam)                 //枚举窗口回调函数
{
    if(hwnd==NULL) 
        return false;
    else
    {
        char szClassName[128] = {0};
        ::GetClassName(hwnd,szClassName, sizeof(szClassName));              

        if(strcmp(szClassName,"SWT_Window0") == 0)                        
        {
            g_vecDesWnd.push_back(hwnd);
        }
        return true;
    }
}


EnumWindows(WNDENUMPROC(lpEnumFunc),NULL);

天之道,利而不害。圣人之道,为而不争。信言不美,美言不信。善者不辩,辩者不善。知者不博,博者不知。
2011-08-04 17:19
文羽弈
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2011-7-15
收藏
得分:0 
回复 4楼 随心
昨天我没看见你的回复,很感谢你的帮助。只是我还不是很懂,这段代码应该放在程序的哪个地方才能起到作用呢?我怎么还是做不出来呢?我的基础不好,很希望能再次得到您的帮助,我会把分全给你的,谢谢!
2011-08-05 09:05
快速回复:VC++ 打开的网页为何不能同时刷新?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022642 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved