测试:

函数代码:

function FindWindowXG(strClass, strTitle: string): THandle;
var
hd: THandle;
arrClass: array[..] of Char;
arrTitle: array[..] of Char;
wClass, wTitle: string;
begin
hd := GetWindow(Application.Handle, GW_HWNDFIRST);
while hd > do
begin
GetClassName(hd, @arrClass[], Length(arrClass));
GetWindowText(hd, @arrTitle[], Length(arrTitle)); wClass := arrClass;
wTitle := arrTitle; strClass := Trim(strClass);
strTitle := Trim(strTitle);
if (Length(strClass) > ) and (Length(strTitle) = ) then
begin
if UpperCase(strClass) = UpperCase(wClass) then
begin
Result := hd;
Exit;
end;
end; if (Length(strClass) = ) and (Length(strTitle) > ) then
begin
if Pos(UpperCase(strTitle), UpperCase(wTitle)) > then
begin
Result := hd;
Exit;
end;
end; if (Length(strClass) > ) and (Length(strTitle) > ) then
begin
if (UpperCase(strClass) = UpperCase(wClass))
and (Pos(UpperCase(strTitle), UpperCase(wTitle)) > ) then
begin
Result := hd;
Exit;
end;
end; hd := GetNextWindow(hd, GW_HWNDNEXT);
end; Result := ;
end;

测试代码:

unit Unit1;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls; type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Edit3: TEdit;
procedure Button1Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Edit2Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.dfm} function FindWindowXG(strClass, strTitle: string): THandle;
var
hd: THandle;
arrClass: array[..] of Char;
arrTitle: array[..] of Char;
wClass, wTitle: string;
begin
hd := GetWindow(Application.Handle, GW_HWNDFIRST);
while hd > do
begin
GetClassName(hd, @arrClass[], Length(arrClass));
GetWindowText(hd, @arrTitle[], Length(arrTitle)); wClass := arrClass;
wTitle := arrTitle; strClass := Trim(strClass);
strTitle := Trim(strTitle);
if (Length(strClass) > ) and (Length(strTitle) = ) then
begin
if UpperCase(strClass) = UpperCase(wClass) then
begin
Result := hd;
Exit;
end;
end; if (Length(strClass) = ) and (Length(strTitle) > ) then
begin
if Pos(UpperCase(strTitle), UpperCase(wTitle)) > then
begin
Result := hd;
Exit;
end;
end; if (Length(strClass) > ) and (Length(strTitle) > ) then
begin
if (UpperCase(strClass) = UpperCase(wClass))
and (Pos(UpperCase(strTitle), UpperCase(wTitle)) > ) then
begin
Result := hd;
Exit;
end;
end; hd := GetNextWindow(hd, GW_HWNDNEXT);
end; Result := ;
end; procedure TForm1.Button1Click(Sender: TObject);
begin
Edit3.Text := IntToStr(FindWindowXG(Edit1.Text,Edit2.Text));
end; procedure TForm1.Edit1Change(Sender: TObject);
begin
Edit3.Clear
end; procedure TForm1.Edit2Change(Sender: TObject);
begin
Edit3.Clear
end; end.

FindWindowXG的更多相关文章

随机推荐

  1. 本地jar在打包时打入到项目中去

    <dependency> <groupId>com.hxyc</groupId> <artifactId>hxyc-common</artifac ...

  2. 十七 Spring的JDBC模版:使用开源连接池,DBCP,C3P0

    DBCP的配置以及使用 引入jar包

  3. JSP数据交互二

    1.JSP内置对象:JSP内置对象是 Web 容器创建的一组对象,不用通过手动new就可以使用2.JSP9大内置对象:      对象名称 类型 request (请求对象)  javax.servl ...

  4. WebGL 渲染管线

    WebGL 是以 OpenGL ES 2.0 为基础的 3D 编程应用接口. WebGL依赖GPU的图形渲染能力,即依赖硬件设备,所以其渲染流程和GPU内部的渲染管线是相符的.渲染管线的作用是将3D模 ...

  5. Date.parse在IE/Firefox下有兼容性问题

    原因: IE和Firefox是不支持含有'-'字符的日期格式,如:"2018-11-23" 解决方法: 日期格式 'yyyy-mm-dd' 改成 'yyyy/mm/dd' 代码: ...

  6. SSH Secure Shell 编码设置-----支持中文

    参考:https://www.cnblogs.com/hupf/p/6920323.html #vi /etc/sysconfig/i18n 将内容改为 LANG="zh_CN.GB1803 ...

  7. No qualifying bean of type 'org.springframework.ui.Model' available

    原因:@Autowired 下面没有注入类

  8. VOC2012数据集提取自己需要的类的图片和对应的xml标签

    根据需要修改路径和自己需要的类即可. import os import os.path import shutil fileDir_ann = r'/home/somnus/tttt/VOC2012/ ...

  9. 使用Go语言一段时间的感受

    作者 openkk 2012-03-04 18:26:58 文/Windstorm 有一段时间没更新了.最近在忙一个 Server+Client 的项目,Client 是 Android 手机,大概也 ...

  10. ZC706+FMCOMMS5应用笔记

    1.板载时钟配置. ZC706有200MHz LVDS差分时钟源SiT9102,作为ZYNQ系统参考时钟. COMMS5板子上有ADCLK846时钟Buffer分路器作为AD9361的时钟源,AD84 ...