Delphi中点击网页弹出的Alert对话框的确定按钮
思路:
使用Windows API函数遍历窗口,查找指定标题的窗口,然后从该窗口查找确定按钮,向该按钮发送鼠标消息进行模拟点击。由于IE8由Alert弹出的网页对话框的标题是“来自网页的消息”,而IE6由Alert弹出的网页对话框的标题是“Microsoft Internet Explorer”,所以本文没有按查找窗口标题方法获取窗口句柄。注意到不管IE哪个版本,IE窗口的类名都是“IEFrame”,而网页对话框的父窗口是IE窗口,所以本文是根据父窗口的类名是不是IEFrame来判断窗口是不是网页对话框,以下代码点击网页弹出的Alert对话框和Confirm对话框的“确定”按钮,并用Label1控件显示网页对话框的消息内容:
实现:
procedure TForm1.Button1Click(Sender: TObject);
var
hIE, hDlg, hBtn, hStatic:HWND;
Text: array[0..255] of char;
begin
hDlg := GetWindow(Handle, GW_HWNDFIRST);
While hDlg <> 0 do
begin
hIE := GetParent(hDlg);
if GetClassName(hIE, Text, 255) > 0 then //获取父窗口类名
if Text = 'IEFrame' then //父窗口为IE窗口
begin
hBtn := FindWindowEx(hDlg, 0, nil, '确定'); //查看确定按钮
if hBtn <> 0 then
begin
hStatic := FindWindowEx(hDlg, 0, 'Static', nil);
hStatic := FindWindowEx(hDlg, hStatic, 'Static', nil);
if GetWindowText(hStatic, Text, 255) > 0 then
Label1.Caption := Text;
Sleep(100);
SendMessage(hBtn, $00F5, 0, 0); //第一次点击使确定按钮获取焦点
Sleep(100);
SendMessage(hBtn, $00F5, 0, 0); //第二次点击击中确定按钮
end;
end;
hDlg:=GetWindow(hDlg,GW_HWNDNEXT);
end;
end;
博文链接:https://blog.csdn.net/diligentcat/article/details/17242739
Delphi中点击网页弹出的Alert对话框的确定按钮的更多相关文章
- asp.net 中点击button弹出模式对话框,选择值后返回到页面中(window.showModalDialog实现)
<td>现从事专业</td><td> <asp:TextBox ID="tbMajor" runat="server ...
- jQuery点击图片弹出放大可拖动图片查看
CSS代码: .popup-bigic { position: absolute; ; ; background: #eee; overflow: hidden; ; } .popup-bigic . ...
- js实现第一次打开网页弹出指定窗口(常用功能封装很好用)
js实现第一次打开网页弹出指定窗口(常用功能封装很好用) 一.总结 1.常用功能封装:之前封装的cookie的操作函数非常好用,我自己也可以这么搞 二.js实现第一次打开网页弹出指定窗口 练习1:第一 ...
- selenium浏览器弹出框alert 操作
1.简介 在WebDriver中要处理JS生成的alert.confirm以及prompt,需要 switch_to.alert() 来选取(定位)警告弹窗,在对弹窗进行关闭.输入等信息操作. 2.操 ...
- Delphi中点击DBGrid某一行获得其详细数据方法
http://www.cnblogs.com/leewiki/archive/2011/12/16/2290172.html Delphi中点击DBGrid某一行获得其详细数据方法 前提是用ADOTa ...
- Android定位&地图&导航——基于百度地图,实现自定义图标绘制并点击时弹出泡泡
一.问题描述 上一次我们使用百度地图实现基本的定位功能,接下来我们继续实现搜索和定位,并使用LocationOverlay绘制定位位置,同时展示如何使用自定义图标绘制并点击时弹出泡泡 如图所示: 二. ...
- 点击文字弹出一个DIV层窗口代码
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...
- (转载) EditText初始不弹出软键盘,只有光标显示,点击再弹出
EditText初始不弹出软键盘,只有光标显示,点击再弹出 2013-06-08 10:13 21305人阅读 评论(5) 收藏 举报 分类: android基础(91) 版权声明:本文为博主原创 ...
- 【转】js弹出框、对话框、提示框、弹窗总结
js弹出框.对话框.提示框.弹窗总结 一.js的三种最常见的对话框 //====================== JS最常用三种弹出对话框 ======================== //弹 ...
随机推荐
- JavaSE---Annotation
1.概述 1.1 JDK1.5开始,java提供了对Annotation的支持: 1.2 Annotation其实就是 代码中的特殊标记,这些标记 可以在编译.类加载.运行时被读取,并执行相应的处理: ...
- [REPRINT]MySQL Indexing Explained
https://atech.blog/viaduct/mysql-indexes-primer What are Indexes? Every time your web application ru ...
- jsp+js完成用户一定时间未操作就跳到登录页面
<% String path = request.getContextPath(); String basePath = request.getScheme() + "://" ...
- C#中Json转换主要使用的几种方法!
这篇主要介绍2.4.第三种方法使用的比较局限,所以我没有深入学习. 第二种方法 我使用比较多的方式,这个方法是.NET内置的,使用起来比较方便 A.利用serializer获取json的泛型对象 利用 ...
- 中国HBase技术社区第一届Meetup资料大合集
2018年6月6号,由中国HBase技术社区组织,阿里云主办的中国第一次HBase Meetup在北京望京阿里中心举行,来自阿里.小米.滴滴.360等公司的各位HBase的PMC.committer共 ...
- SCI小论文投稿记录
英文小论文投的是SCI 3区的一个刊物,收录在spring,ei等, 投稿的时候2019/2/3影响因子2.8左右 现在2019/8/13 影响因子3.844 先科普下论文的各个状态 1. Subm ...
- VS2008中所有快捷键
转载自:http://itfocus.diandian.com/post/2011-09-16/5091994 微软开发环境的可视化界面做的很全面,几乎所有的操作都可以通过可视化界面完成,但是你是否在 ...
- 手动安装easy-install/pip
1.wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py 2.在root用户下 python ez_setup.py -- ...
- 在Python中检测*可用* CPU数量的便携方式
根据这个问题和答案 - Python multiprocessing.cpu_count()在4核Nvidia Jetson TK1上返回'1' - Python multiprocessing.cp ...
- Python之switch
首先声明,Python没有switch!!! 通过函数与字典的结合实现 #!/usr/bin/python #coding:utf-8 from __future__ import division ...