解决方案

DELPHI用FindWindow、FindWindowEx - 查找窗口

seo靠我 2023-09-24 09:22:52

FindWindow(lpClassName, {窗口的类名}lpWindowName: PChar {窗口的标题} ): HWND; {返回窗口的句柄; 失败返回 0}//FSEO靠我indWindowEx 比 FindWindow 多出两个句柄参数: FindWindowEx(Parent: HWND; {要查找子窗口的父窗口句柄}Child: HWND;SEO靠我 {子窗口句柄}ClassName: PChar; {}WindowName: PChar {} ): HWND; { 如果 PSEO靠我arent 是 0, 则函数以桌面窗口为父窗口, 查找桌面窗口的所有子窗口; 如果 是 HWND_MESSAGE, 函数仅查找所有消息窗口; 子窗口必须SEO靠我是 Parent 窗口的直接子窗口; 如果 Child 是 0, 查找从 Parent 的第一个子窗口开始; 如果 Parent 和 Child 同时是SEO靠我 0, 则函数查找所有的顶层窗口及消息窗口. }

//测试1: 试着找找新建程序主窗口的句柄 varh: HWND; begin{SEO靠我现在我们知道窗口的标题是: Form1、窗口的类名是: TForm1}h := FindWindow(TForm1, Form1);ShowMessage(IntToStr(h)); {656180;SEO靠我 这是随机, 每次启动窗口肯定不一样}{假如不知道类名}h := FindWindow(nil, Form1);ShowMessage(IntToStr(h)); {656180}{假如不知道标题名}SEO靠我h := FindWindow(TForm1, nil);ShowMessage(IntToStr(h)); {656180}{其实这个窗口的句柄不就是 Self.Handle 吗}ShowMessaSEO靠我ge(IntToStr(Handle)); {656180} end;

//测试2: 找计算器窗口的句柄(先打开计算器) varh: HWND; SEO靠我 begin{如果不是简体中文系统, 这样可能不灵}h := FindWindow(nil, 计算器);ShowMessage(IntToStr(h)); {1508334}{最好这样,SEO靠我 但你得提前知道计算器窗口的类名是: SciCalc}h := FindWindow(SciCalc, nil);ShowMessage(IntToStr(h)); {1508334} SEO靠我 end;

“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2