注册 登录
编程论坛 VC++/MFC

VC++实现关闭指定网页.

默默学习 发布于 2011-03-08 12:58, 1829 次点击
    HWND hWnd;
    hWnd= FindWindowEx(NULL,0,"百度一下,你就知道    ",NULL);
    ::PostMessage(hWnd,WM_CLOSE,0,0);

//汗,让大家见笑了。我没学过,我只是现在急需这个功能,.希望懂的帮教下我。
FindWindowEx取句柄,在通过发送窗口关闭消息,好象是这样.我也不怎么懂,希望知道的帮我改下。。
16 回复
#2
hellovfp2011-03-08 13:15
是这样的,SendMessage也可以,也可以直接操作进程,直接TerminateProcess结束进程。
你觉得这样麻烦,也可以用System()调用kill命令行.
#3
默默学习2011-03-08 13:50
回复 2楼 hellovfp
请给出详细代码。
#4
瓦药墙2011-03-08 13:57
是关闭一个窗口? 还是结束iexplore.exe进程?


我想了一个下, 关闭一个网页:
findwindow后, 可以模拟鼠标, 点击那个叉叉关闭

如果要关闭浏览器进程, 那相对简单吧...
#5
默默学习2011-03-08 16:51
回复 4楼 瓦药墙
模拟点击。。
有很多方法,想的出来。但是我不会代码。。
帮忙发下代码
#6
我是菜鸟哦2011-03-08 18:07

#include "stdafx.h"
#include "windows.h"
void main()
{
  HWND hwd;
  hwd=FindWindow(NULL,"百度一下,你就知道");
  while(hwd!=0)
  {
      hwd=FindWindow(NULL,"HEX");
      PostMessage(hwd,WM_CLOSE,0,0);
  }
        MessageBox(NULL,"完成","退出",0);
 }
#7
默默学习2011-03-08 18:13
回复 6楼 我是菜鸟哦
结束不了。。网页。

[ 本帖最后由 默默学习 于 2011-3-8 18:14 编辑 ]
#8
我是菜鸟哦2011-03-08 18:15
是标题内容没取对
#9
默默学习2011-03-08 18:22
回复 8楼 我是菜鸟哦
标题我试了,不行。。
#10
我是菜鸟哦2011-03-08 18:23
不只那8个字加空格的,还有其它内容,和浏览器有关
#11
默默学习2011-03-08 18:28
我只想结束一个网页。。你搞个标题我。。
#12
我是菜鸟哦2011-03-08 20:01
。。。。。网页你得把那个网页的标题名称找全了才行啊
#13
瓦药墙2011-03-08 20:27
用spy++查下那网页窗口的标题, 类名, 然后直接 SendMessage发送个WM_CLOSE消息也行吧
#14
瓦药墙2011-03-08 20:46
以下是模拟鼠标的, 类名和标题通过spy++得到, 测试可以通过:

程序代码:
#include <windows.h>
#include <stdio.h>

int main(void)
{
    HWND        hWnd;
    RECT        rect;

    hWnd = FindWindow("IEFrame", "编程论坛 - 中国最大的开发者社区 - Microsoft Internet Explorer");
    if (NULL != hWnd)
    {
        printf("关!\n");
        GetWindowRect(hWnd, &rect);
        SetCursorPos(rect.right - 10, rect.top + 10);
        mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
        mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    }
    return 0;
}
#15
我是菜鸟哦2011-03-08 21:16
给你一个搜索包含字符的吧,这回可以了。

#include "stdafx.h"
#include "windows.h"

BOOL CALLBACK check(HWND hWnd,LPARAM lParam)
{
 if ( GetParent(hWnd)==NULL  &&  IsWindowVisible(hWnd) )
 {
  char str[100]={NULL};
  char cp[9];                        
  GetWindowText(hWnd,str,100);
  lstrcpyn(cp,str,9);
  if (0==strcmp("百度一下",cp))
  {
        PostMessage(hWnd,WM_CLOSE,0,0);
        MessageBox(NULL,"完成",NULL,MB_OK);
        return false;
    }


 }
 return true;   
}

void main()
{
  EnumWindows(check,NULL);
}
#16
瓦药墙2011-03-08 22:28
回复 15楼 我是菜鸟哦
顶! 很厉害
#17
默默学习2011-03-09 00:43
回复 15楼 我是菜鸟哦
嘿嘿,谢了。。
1