delphi 多种方法查找窗口句柄


本文整理自网络,侵删。

 第一种:使用API函数FindWindow
hw:=FindWindow(nil,PChar('窗口的标题名称'));

第二种:通过枚举所有窗口,查询特定条件的窗口
function EnumWindowsProc(Wnd: HWND; Param: Integer): Boolean; stdcall;
var
cn : Array[0..255] of char;
tab : HWND;
tId : DWORD;
begin
Result := TRUE;
if GetClassName(wnd, cn, 255) > 0 then
if cn = '#32770' then
begin
if (FindWindowEx(wnd, 0, 'Button','新建窗口') <> 0) and
(FindWindowEx(wnd, 0, 'Button','拨打电话') <> 0) and
(FindWindowEx(wnd, 0, 'Button','发送(Enter)') <> 0) then
begin
tID := GetWindowThreadProcessID(wnd, nil);
Form1.Memo1.Lines.Add('对话框句柄:'+IntToStr(Wnd));
Form1.Memo1.Lines.Add('对话框线程ID:' + IntToSTr(tID));
end;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
EnumWindows(@EnumWindowsProc,0);
end;

第三种: 查找字窗口内元素的句柄
FindWindowEx(wnd, 0, 'Button','拨打电话')

第四种: 直接使用类似spy++工具软件查询

相关阅读 >>

Delphi 使用tmemorystream保存多张图片到文件,并读取

Delphi getdir 获取指定驱动器的当前路径名

Delphi远程注入dll方法

Delphi模仿“千千静听”滚动标题栏

datasnap 上传/下载大文件(本demo以图传片文件为例)

Delphi 获取所有磁盘分区另类方法

Delphi rewrite 以可写方式打开文件

Delphi研究之驱动开发篇(二)--工具及环境搭建

Delphi xe8在firemonkey tlistbox中显示图像

Delphi deletefile 删除文件

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...