function EnumChildProc(Wnd: hWnd; SL: TStrings): BOOL; stdcall;
var
szFull: array[0..MAX_PATH] of Char;
begin
Result := Wnd <> 0;
if Result then
begin
GetWindowText(Wnd, szFull, SizeOf(szFull));
if (Pos(SL[0], StrPas(szFull)) > 0) and (SL.IndexOfObject(TObject(Wnd)) < 0)
then SL.AddObject(StrPas(szFull), TObject(Wnd));
EnumChildWindows(Wnd, @EnumChildProc, Longint(SL));
end;
end;
function ClickButton(ParentWindow: Hwnd; const ButtonCaption: string): Boolean;
var
SL: TStringList;
H: hWnd;
begin
SL := TStringList.Create;
try
SL.AddObject(ButtonCaption, nil);
EnumChildWindows(ParentWindow, @EnumChildProc, Longint(SL));
H := 0;
case SL.Count of
1: ShowMessage(’Objekt sa nenašiel !’);
2: H := hWnd(SL.Objects[1]);
else
ShowMessage(’Text nie je jednoznacny !’);
end;
finally
SL.Free;
end;
Result := H <> 0;
if Result then PostMessage(H, BM_CLICK, 0, 0);
end;
// Príklad
// ClickButton(FindWindow('TForm1', 'Form1'), 'Button1');
Funguje to, ja som to používal, ale nespoliehal by som sa na to! Teda funguje to určite na aplikácie, možno pri internete, pri web stránkach to bude trošku inakšie, možno to nepôjde a možno hej, každopádne treba to vyskúšať.