文档章节

枚举当前所有的 IE 窗口 - 回复 "混岗" 的问题

涂孟超
 涂孟超
发布于 2014/09/26 15:34
字数 314
阅读 4
收藏 0
问题来源: http://www.cnblogs.com/del/archive/2008/02/28/1085432.html#1247615

致 "混岗" 同学: 你同时提到 IE 中的 "输入框", 没有明白你的意思; 这个例子只是找顶层窗口, IE 的 "输入框" 是 IE 窗口的子窗口, 需要在此基础上继续枚举子窗口.

本例效果图(测试时, 我打开了: 搜狐、谷歌和我的博客):



代码文件:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Memo1.Align := alTop;
  Memo1.ScrollBars := ssBoth;
  Memo1.Clear;
end;

procedure TForm1.Button1Click(Sender: TObject);
const
  className = 'IEFrame'; {这是 IE 浏览器的类名}
var
  h: HWnd;
  buf: array[Byte] of Char;
begin
  h := GetWindow(Handle, GW_HWNDFIRST);
  while h <> 0 do
  begin
    GetClassName(h, buf, Length(buf));
    if buf = className then {找到咋处理? 显示它的标题吧}
    begin
      GetWindowText(h, buf, Length(buf));
      Memo1.Lines.Add(buf)
    end;
    h := GetWindow(h, GW_HWNDNEXT);
  end;
end;

end.

 
 
 
 
 

 

 

  
窗体文件:
object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 168
  ClientWidth = 319
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object Button1: TButton
    Left = 126
    Top = 127
    Width = 75
    Height = 25
    Caption = 'Button1'
    TabOrder = 0
    OnClick = Button1Click
  end
  object Memo1: TMemo
    Left = 8
    Top = 8
    Width = 185
    Height = 113
    Lines.Strings = (
      'Memo1')
    TabOrder = 1
  end
end

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2008/07/07/1237804.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
Windows窗体数据抓取详解

最近在客户项目上刚好遇到一个问题,项目需求是要获取某台机床的实时状态,问题点刚好就在于该机床不是传统意义上的数控机床,也不是PLC控制器,只有一个上传下载程序文件的应用程序,上面刚...

wangqiulin123456
04/22
0
0
QWSInputMethod类参考

详细说明 include 注意:这个类仅仅在嵌入式环境下有效 一个Qt for Embedded Linux应用程序需要一个服务器应用程序来运行,或者它自身成为一个服务器应用程序。所有的系统会产生事件,包括键...

souldepth
2013/04/12
0
0
利用windows消息操纵程序

今天遇到个小问题,如何在A程序中读取和操纵B程序窗口。网上搜了一下,搜到如下两篇文章,试了一下有效,在此做个记录备忘(以下内容为转载): 1. 操纵别的程序窗口中的按钮 https://www.cn...

propagator
08/20
0
0
Delphi 常用API 函数(好多都没见过)

AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 AnyPopup 判断屏幕上是否存在任何弹出式窗口 ArrangeIconicWindows 排列一个父窗口的最小化子窗口 AttachThread...

dillonxiao
09/19
0
0
C#语言FormClosing与FormClosed事件中Args参数的CloseReason枚举

我的操作系统是Win7旗舰版,VS版本是VS2012,.NET版本为.NET Framework 4.5。 在窗体的FormClosing事件,第二个参数(FormClosingEventArgs类型)下有一个枚举变量CloseReason,在窗体的For...

北风其凉
2016/07/13
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot 入门 - 进阶篇(4)- REST访问(RestTemplate)

经常需要发送一个GET/POST请求到其他系统(REST API),通过JDK自带的HttpURLConnection、Apache HttpClient、Netty 4、OkHTTP 2/3都可以实现。 HttpClient的使用:http://rensanning.iteye.c...

onedotdot
23分钟前
2
0
Wi-Fi也有版本号了!

据Solidot消息,行业组织 Wi-Fi 联盟宣布当前的版本 Wi-Fi 802.11ac 重命名为 Wi-Fi 5,而下一个版本 802.11ax 重命名为 Wi-Fi 6,之前的版本 802.11n 改名为 Wi-Fi 4。 Wi-Fi 标准之前使用单...

linux-tao
25分钟前
3
0
项目经验不丰富、技术不突出的程序员怎么打动面试官?

前言 相信不少的程序员都有过类似的困惑:如果我没有大型的项目经历,也不能靠技术征服面试官,那我要怎么才能给面试官留下一个好印象呢? 按照本人的面试经验来说,面试主要看几点:项目经验...

Mamba1
35分钟前
2
0
MyBatis 源码分析----MyBatis 整体架构概要说明

MyBatis整体架构 MyBatis的整体架构分为三层1:基础支持层,2:核心处理层,3:接口层 1:基础支持层: 1-1反射模块: 该模块对Java 原生的反射进行了良好的封装,提供了更加简洁易用的API ,...

西瓜1994
41分钟前
7
0
如何让 J2Cache 在多种编程语言环境中使用

现在的系统是越来越复杂了,不仅仅是功能复杂,系统结构也非常复杂,而且经常在一个系统里包含几种不同语言编写的子系统。例如用 JavaScript 做前端开发、用 Java/PHP 等等做后端,C/C++/Go ...

红薯
42分钟前
46
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部