delphi 列出所有可视窗口


本文整理自网络,侵删。

 function EnumWndProc(AWnd: HWND; AlParam: LPARAM): Boolean; stdcall;
var
szText: array[0..254] of char;
begin
if IsWindowVisible(awnd) then
begin
GetWindowText(awnd, @szText, 255);
if szText<>'' then
Form1.listBox1.Items.Add(strPas(@szText));
end;
Result := True;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
EnumWindows(@EnumWndProc, 0);
end;

如果要查找第一个窗口,按以下代码: 因为EnumWindows函数的功能是:枚举屏幕上所有程序中的顶层窗口,将窗口句柄以参数的形式传递给回调函数。找到一个窗口,就调用一次回调函数。枚举结束的条件是:要么枚举完所有的窗口,要么回调函数返回False。

function EnumWndProc(AWnd: HWND; AlParam: LPARAM): Boolean; stdcall;
var
szText: array[0..254] of char;
begin
Result := True;
if IsWindowVisible(awnd) and (awnd<>Form1.Handle) then //要排除掉本窗口
begin
GetWindowText(awnd, @szText, 255);
if szText<>'' then
begin
Form1.listBox1.Items.Add(inttostr(awnd)+': '+strPas(@szText));
Result:=False;
end;
end;

end;

回调函数: 函数名称可以随便乱取,但函数参数的类型一般不得乱来,其顺序,数据类型等都有规定的,因为这些都是让其他程序调用的,他们已经规定好了的,但参数名称可以随便乱叫。注意后面一定要带上“stdcall”,下面这样也行.

function EnumWindowsProc(AhWnd:LongInt;AForm:TForm1):boolean;

调用时: EnumWindows(@EnumWindowsProc,LongInt(self));

相关阅读 >>

Delphi windows 编程[23] - 快捷键资源

Delphi文件 fileopen 、fileseek等的用法(看红色字体)

Delphi版本号检测判断

Delphi程序中操作注册表

Delphi 用webbrowser给要访问的页面加上referer(来路)参数

Delphi idhttp的基本用法

Delphi 通过api强制tedit仅接受数字输入

Delphi 通过memorystream 传递image1数据

Delphi 如何获得其他进程的token

Delphi 测试字符串写入类: tstringwriter

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



打赏

取消

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

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

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

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

评论

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