delphi 遍历窗口

function EnumWindowsProc(hwnd: HWND; lparam: LPARAM): Boolean; stdcall;
var
  buf: array[Byte] of Char;
begin
  Result:= True;
  GetWindowText(hwnd, buf, SizeOf(buf));
  Form1.Memo1.Lines.Add(buf);
  Form1.Memo1.Lines.Add(IntToStr(hwnd));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  EnumWindows(@enumwindowsproc,0);
  EnumChildWindows(HWND,@enumwindowsproc,0);   //遍历子窗口多了一个参数.父窗口
end;

delphi 遍历窗口

时间: 2024-10-01 03:36:58

delphi 遍历窗口的相关文章

Delphi 查找标题已知的窗口句柄,遍历窗口控件句柄(转)

Delphi 查找标题已知的窗口句柄,遍历窗口控件句柄(转) 用我的方法来控制其他程序窗体上的窗口控件,必须先了解什么是 回调函数.我的理解是这样的: 回 调函数写出来不是自己的程序去调用的,反而是让其他的东西去调用,比如windows操作系统,比如其他的程序等等之类的.但是什么时候被调用却不知道 了.回调函数一般是按照调用者的要求定义好参数和返回值的类型,你向调用者提供你的回调函数的入口地址,然后调用者有什么事件发生的时候就可以随时按照你 提供的地址调用这个函数通知你,并按照预先规定好的形式传

Delphi 悬浮窗口、浮动窗口的实现

源:Delphi 悬浮窗口.浮动窗口的实现 浮动窗体的实现 http://blog.tianya.cn/blogger/post_show.asp?BlogID=68097&PostID=806089 需要一个这样的窗体:a:没有标题栏; b:可以改变大小; c:不在任务栏上显示图标; d:如果不是主窗体,它的最小化不受主窗体的限制; e:在最顶端显示 处理:a:不在任务栏出现的,只要设置窗体的属性为ToolWindow就可以了.b:要想使窗体脱离主窗体的限制,必须修改它的ParentWnd,使

在Delphi的窗口单元中,如何调用其它窗口的单元。

在Delphi的窗口单元中,如何调用其它窗口的单元.(转载) . 在Delphi中简单的调用单元 unit实例 一,新建一个工程文件,默认的文件是unit1,代码如下:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton;

循环遍历窗口控件

在做界面的时候,有的时候须要推断控件是否为空,假设窗口就有一个须要推断那无所谓,直接写一个函数调用即可.但是有的时候窗口中须要推断非常多控件,比方说注冊时那么多的信息都须要推断,还有就是组合查询一类的等等一些信息,这时候再用调用函数就显得异常麻烦了,由于每个都须要进行推断,这得反复非常多遍. 当然有问题就有解决方法.由于推断的控件都是来自一个窗口,所以仅仅须要编写一个函数,循环遍历窗口的每个控件即可.详细例如以下: <span style="color:#009900;">

根据获取的窗口句柄遍历窗口Edit控件

网上说遍历窗口控件有两种方法: 1),使用EnumChildWindows,没有深究, 学习网址如下:http://blog.sina.com.cn/s/blog_60ac1c4b010116uj.html 2),使用::FindWindowEx和GetWindow组合 下面只说第二种方法, 首先根据标题获取窗口的句柄, HWND hWnd=::FindWindow(NULL,"zhang001"); findwindow原型: FindWindow(   lpClassName, 

遍历窗口权限问题

一.问题点:获取桌面窗口数据,但是在系统权限且session0下,获取不到非系统权限且session1下的窗口. 问题分析:在不同权限的session0和session1下遍历窗口,获取的窗口数据是否存在影响? 二.进程权限: 为了系统的安全,Windows系统划分了多种权限来控制用户和程序访问数据的权限,可以有效避免来自病毒的攻击.尤其是在vista系统开始,Windows提供了UAC机制,即使当前登录的用户权限是管理员,运行某些管理员权限的程序或修改需要管理员权限的数据时,系统会弹出一个覆盖

Delphi主窗口任务栏菜单的问题(转发WM_SYSCOMMAND到Application)

Delphi的VCL框架在创建应用时TApplication是一个自动创建的隐藏窗口,其它创建的窗口是自动以该窗口为窗口,这就导致创始的主窗口在任务栏的系统菜单只有三项,只要在主窗口的Create事件中将系统菜单用Application的系统菜单替换,并将SysCommand消息转发到主窗口就正常了. unit Unit1; interface uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Fo

MFC 记录- 遍历窗口

加深记忆------ 经常用到这些,做个记录! 这里列出两种遍历方式... 用到的函数原型: 1 HWND GetWindow( 2 HWND hWnd, // handle to original window 3 UINT uCmd // relationship flag 4 ); 5 6 HWND GetDeskTopWindow(VOID) 7 8 int GetWindowText( 9 HWND hWnd, // handle to window or control with t

Delphi实现窗口一直在桌面工作区内显示(重写WM_WINDOWPOSCHANGING消息)

有的时候我们要实现一个悬浮窗口,并使该窗口一直显示在桌面的工作区内.即整个窗口要一直显示在屏幕上,不能超出屏幕的上下左右边缘.此功能的实现也不难,我们需要自己写代码来响应窗口的WM_WINDOWPOSCHANGING消息,话不多说,详细代码如下供参考: 新建一个工程,并把下面代码拷贝到工程中,运行…… Delphi/Pascal 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31