var handle1,handle2:thandle;
str,str1:array [0..225] of char;
begin
handle1:=findwindow('Shell_TrayWnd',nil);//已知一个窗口的Handle,拿Shell_TrayWnd来说.
ListBox1.Items.Clear ;
handle2 :=0;
if handle1<>0 then
handle2:=GetWindow(handle1,GW_CHILD);
if handle2<>0 then
begin
getwindowtext(handle2,str,225);
getclassname(handle2,str1,225);
ListBox1.Items .Add(inttostr(handle2)+' 标题:'+str+' 类名:'+str1);
while handle2<>0 do
begin
handle2:=GetWindow(handle2,GW_HWNDNEXT);
if handle2<>0 then
begin
getwindowtext(handle2,str,225);
getclassname(handle2,str1,225);
ListBox1.Items.Add(inttostr(handle2)+' 标题:'+str+' 类名:'+str1);
if str1='Button' then
EnableWindow(handle2,True);
if str1='Edit' then
EnableWindow(handle2,True);
end;
end;
end;
end;