测试:

函数代码:

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. Python学习第七课——集合(set) 和 字符串拼接

    集合(set) # 2 无序 # 3 集合中元素必须是不可变类型 # 定义集合 s = {1,2,3,4,5} print(s) # 输出结果 {1, 2, 3, 4, 5} # 1 集合由不同元素组 ...

  2. 题解 UVA10298 【Power Strings】

    此题我写的是后缀数组SA解法,如果不会后缀数组的可以跳过本篇blog了. 参考文献:罗穗骞 2009集训队后缀数组论文 前记 最近学后缀数组,肝了不少题,也分出了后缀数组的几个题型,看这题没有后缀数组 ...

  3. 关于Essay写作的Tips及整体讲解

    Essay,相信在国外留学的小伙伴们都不会陌生,无论你是读本科还是硕士,甚至是读中学,都要经历Essay写作,也就是我们的小论文.那么,无论你是开始了英国学校的学习还是将要开始,你对Essay写作的了 ...

  4. ES6转换ES5

    各大浏览器的最新版本,对 ES6 的支持可以查看kangax.github.io/es5-compat-table/es6/.随着时间的推移,支持度已经越来越高了,超过 90%的 ES6 语法特性都实 ...

  5. CodeForces - 876C Classroom Watch (枚举)

    题意:已知n,问满足条件"x的各个数字之和+x=n"的x有几个并按升序输出. 分析: 1.n最大1e9,10位数,假设每一位都为9的话,可知x的各个数字之和最大可以贡献90. 2. ...

  6. Centos7 rsync+inotify两台服务器同步文件(单向)

    注:本篇介绍的是单向同步,即A文件同步到B,但B的文件不同步到A,双向同步的在下一篇文章中. rsync与inotify不再赘述,直接进入实战. 0.背景 两台服务器IP地址分别为: 源服务器:192 ...

  7. 并行执行 Job【转】

    有时,我们希望能同时运行多个 Pod,提高 Job 的执行效率.这个可以通过 parallelism 设置. 这里我们将并行的 Pod 数量设置为 2,实践一下: Job 一共启动了两个 Pod,而且 ...

  8. PV 动态供给【转】

    前面的例子中,我们提前创建了 PV,然后通过 PVC 申请 PV 并在 Pod 中使用,这种方式叫做静态供给(Static Provision). 与之对应的是动态供给(Dynamical Provi ...

  9. 无法删除oracle用户的问题

    http://blog.sina.com.cn/s/blog_684848d60101hj8a.html

  10. 在linux7(centos)中安装python3.7.2

    一般情况下linux上都默认安装了python,检查一下我的版本 没有安装python3,但是目前已经是python3了,所以为了方便,还是要在系统上安装一下比较好. 上面的命令,直接输入python ...