function GetWnd(input: hwnd; sub: string): HWND;
var
hCurrentWindow: HWnd;
WndText: string;
begin
hCurrentWindow := GetWindow(input, GW_HWNDFIRST);
while hCurrentWindow <> 0 do
begin
WndText := GetWndText(hCurrentWindow);
if (Pos(sub, WndText) > 0) then
begin
Result := hCurrentWindow;
Exit;
end;
hCurrentWindow := GetWindow(hCurrentWindow, GW_HWNDNEXT);
end;
Result := 0;
end;input是程序句柄,sub是要搜索控件包含的文本,可是这个找程序的句柄没有问题,找里面的控件就找不到了,是不是还有别的函数?
var
hCurrentWindow: HWnd;
WndText: string;
begin
hCurrentWindow := GetWindow(input, GW_HWNDFIRST);
while hCurrentWindow <> 0 do
begin
WndText := GetWndText(hCurrentWindow);
if (Pos(sub, WndText) > 0) then
begin
Result := hCurrentWindow;
Exit;
end;
hCurrentWindow := GetWindow(hCurrentWindow, GW_HWNDNEXT);
end;
Result := 0;
end;input是程序句柄,sub是要搜索控件包含的文本,可是这个找程序的句柄没有问题,找里面的控件就找不到了,是不是还有别的函数?
解决方案 »
- 开发数据库报表用什么控件好啊?
- StringGrid里在第一列插入一个图标,但是图标大小怎么控制??
- 头一次作进销存系统,请问用什么组件能比较方便的让用户一次录入多条商品信息啊?
- 怎么判断用ShellExecute打开或执行的文件关闭了?高分请教
- 流读取错误问题
- 向大家推荐一本好书:
- 200分!用ocx方式如何实现mdi窗体模式.
- 请问现在一部好的摩托跑车大概多少钱
- [TIPS]修改IE的代理服务器设置,不重新启动IE。
- 怎样做服务程序? (在系统后台运行)
- 如何使listView控件的项在失去焦点之后,仍然保持选中状态?
- 窗体1中的变量如何传递给窗体2。比如FORM1中的一个INT A传递到FORM2中的INT B?
http://www.csdn.net/develop/Read_Article.asp?Id=21715
var
buffer: array[0..255] of char;
begin
Result := True;
GetClassName(hwnd, buffer, 256);
if StrPas(Buffer) <>'' then
showmessage(string(StrPas(Buffer)))
else
result:=false;//停止枚举
end;procedure TForm1.Button1Click(Sender: TObject);
begin
EnumChildWindows(handle,@EnumChildWindowsProc,0);
end;
//注意一些控件如label由于没有handle,所以是不会列出来的