麻烦大家看看我错在那里?我想查找所有IE窗口,但我的程序却只能找到一个!!!!
function pro(hWnd: HWND; lParam: LPARAM):bool;
var mytext:array [0..255] of char;
begin
if hwnd=findwindow('ieframe',nil) then
begin
getwindowtext(hwnd,mytext,255);
form1.Memo1.Lines.Add((mytext));
end;
result:=true;
end;
function pro(hWnd: HWND; lParam: LPARAM):bool;
var mytext:array [0..255] of char;
begin
if hwnd=findwindow('ieframe',nil) then
begin
getwindowtext(hwnd,mytext,255);
form1.Memo1.Lines.Add((mytext));
end;
result:=true;
end;
function loop(H: HWND; L: LPARAM): boolean; stdcall;
var
P,p2: Pchar;
begin
GetMem(P, 256);
GetMem(P2, 256);
GetClassName(H, P, 256);
if strpas(P) = 'IEFrame' then //此处忽略大小写,可自行加上
//TStringList(L).Add(IntToStr(H));
begin
GetWindowText(H,p2,256);
form1.listbox2.Items.Add(IntToStr(H)+'='+p+p2);
end;
Freemem(P);
FreeMem(p2);
result := true;
end;procedure TForm1.Button2Click(Sender: TObject);
var T: TStringList;
i: integer;
begin
T:=TstringList.Create;
EnumWindows(@loop,LongInt(T));
//listbox1.Items.Assign(t);
for i:=0 to T.Count-1 do
//postMessage(StrToInt(T.Strings[i]),WM_CLOSE,0,0);
T.Free;
end;
TO hiflower(花) 换成 FindWindowEx
好像也不行!!!
hwnd:=FindWindow(...)
while hwnd<>0 do
begin
hwnd:=FindWindowEx(..,hwnd,...)
end;