用webBrowser控件程序里自动点击按钮提交后,很可能会弹出一个alert形式的对话框,窗口标题一般是"Windows Internet Explorer",内容一般是操作成功或失败,窗体上还有确定或取消按钮,那接下来怎么自动点击“确定”按钮呢?关键是alert弹出框还会阻塞进程。不急!一步一步解决。

首先,找到窗口句柄,再找到“确定"按钮的控件句柄(好像没这种叫法,但定义形式和窗口句柄一样),最后发送点击信息给控件。

VC代码如下:

UINT AlertWindowsClick(LPVOID pParam) //定义成这样是为了AfxBeginThread()函数调用 { Sleep(3000); //也是为了线程处理 HWND h_Wnd; //定义窗口句柄 h_Wnd = ::FindWindow(NULL,"Windows Internet Explorer"); //找到alert弹出窗口句柄 // IE6标题:Microsoft Internet Explorer // IE7标题:Windows Internet Explorer HWND h_Button = ::FindWindowEx(h_Wnd,NULL,NULL,"确定"); //找到alert弹出窗口上的按钮句柄 ::PostMessage(h_Button,BM_CLICK,0,0); return 1; }

其次,解决进程阻塞问题。我是用IHTMLElement* pElem找到网页提交按钮的,pElem->click();就行了。在pElem->click()前开始另一线程AfxBeginThread(AlertWindowsClick,&str,0,0,0,0),当pElem->click()后,alert框弹出,主线程阻塞,但新建的线程会运行,于是alert框会被点击掉,主线程继续执行。

接下来解释下AfxBeginThread(AlertWindowsClick,&str,0,0,0,0);AlertWindowsClick是上面定义的点击按钮的函数,str随便定义一个CString str就行了,其他的全是0。。。

关于Sleep(3000);其实是我是作为判断弹出框出现的条件,这里是等3秒,还可以设置循环严格判断弹出框有没出来,甚至出来的是否就是你预想的弹出框等等!

自动点击网页alert()弹出框相关推荐

  1. android h5弹窗,Android嵌套html5页面中alert 弹出框问题

    最近项目中遇到一个头疼的问题,那就是在安卓里嵌套html5的时候发现alert弹出框出现了问题 那就是弹出的时候会出现串 来自http://xxxxx 网页的提示 然后下面出来具体的弹出信息,还有更奇 ...

  2. alert 弹出框的操作

    1.Alert对象:是Selenium  WebDriver中专门处理弹出框的一种对象,这种对象我们不需要导入它,也不需要实例化,只需要调用切换对象的alert属性就可以获得该对象实例. 2.切换到弹 ...

  3. html alter自动弹出,javascript封装alert()弹出框

    由于各个浏览器之间的差异,弹出框不一样,这有影响页面的布局,所以自己就用原声js封装了一个alert弹出框,希望对有需求的有所帮助... ` alert function ok() { alert(' ...

  4. vue 点击弹出文字_vue实现点击出现操作弹出框的示例

    如上图所示,这次要实现一个点击出现操作弹框的效果:并将这个功能封装成一个函数,便于在项目的多个地方使用. 具体思路是: 封装一个组件,组件保护一个插槽,我们可以根据不同的场景,利用插槽随意在这个弹框里 ...

  5. [JS]JS模拟Alert弹出框效果--自定义CSS样式

    function alertMsg(msg, mode) { //mode为空,即只有一个确认按钮,mode为1时有确认和取消两个按钮msg = msg || '';mode = mode || 0; ...

  6. jquery weui 中alert弹出框在ios中跳动问题

    问题描述: jquery-weui中的弹出框在ios上会有一个右下角向中间滑动的效果,在Android上没有这个效果. 解决方法: 修该jquery-weui.js中的openModal方法如下图: ...

  7. swift alert 弹出框

    转载自   http://www.hangge.com/blog/cache/detail_651.html 1,简单的应用(同时按钮响应Handler使用闭包函数) 1 2 3 4 5 6 7 8 ...

  8. control层alert弹出框乱码_【ArcGIS for JS】动态图层的属性查询(11)

    在真实需求中,我们不仅仅是将shp在地图中显示那么简单,我们往往要查询该图层的属性信息,我们在前面代码的基础上添加上属性查询. 1.1方法1(通过click直接获取) 1.1.1代码实现 给要素图层添 ...

  9. js美化alert()弹出框

    使用重定义 //弹出自定义提示窗口 var showAlert= function(msg,url,element){//遮罩if ( $("#cover_alert").leng ...

最新文章

  1. hdu 5366 简单递推
  2. 基于java的学生点名系统_基于javafx的学生电子点名系统(在eclipse中编写完成)...
  3. nyoj 1261 音痴又音痴的LT(离散化+树状数组求K小数)
  4. oracle多条sql语句常量,如何在Oracle中一次执行多条sql语句
  5. 双基因突变患者_双任务干预对携带LRRK2基因突变的帕金森病患者手灵活性的影响...
  6. Python数据结构与算法(二)--timeit模块
  7. Python中xPath技术和BeautifulSoup的使用
  8. 如何使用pattern recognition letter 的word写作模板
  9. serialVersionUID 问题处理
  10. unity3d 地面印花_unity冬季场景地面地形白雪纹理材质贴图游戏素材Winter Ground Pack v1.1...
  11. 教你用Python制作微信好友背景墙
  12. 什么是注意力机制及其应用(self attention)?
  13. 英语口语练习三十二之英文口语中生病时该如何陈述症状
  14. 使用vue+elementUI页面实现前端做分页
  15. 什么是DHT网络(DHT network)
  16. 电子设计教程24:反相比例运算电路
  17. 在ubuntu 18上进行NPB和mpiP的整合
  18. awgn函数 matlab measure 什么意思,Matlab中 awgn 函数输入参数带有‘measured’ 时snr的含义...
  19. 折半查找(二分查找)的理解
  20. 百度AI市场热品试用 | 创百非接触测温人脸识别机

热门文章

  1. C#实现的系统内存清理工具
  2. 网文快捕保存网页并导出chm(360浏览器)
  3. 全国职称考试考无忧2018破解
  4. 别告诉我你懂PPT.李治.扫描版.pdf
  5. 关于Wav音频压缩MP3
  6. 基于平均不同分辨率的共振峰跟踪算法matlab仿真
  7. JSDoc3的简单使用
  8. Linux之ubuntu基本命令
  9. 2262 c语言软件解码,单片机解码315M的pt2262编码的c51程序
  10. 每次USB共享网络后,网络编号自动+1后清零方法