ورود

View Full Version : فشار یک Button از یه برنامه دیگه



nasr
یک شنبه 06 دی 1383, 11:01 صبح
سلام

من یه برنامه را از طریق دلفی بازش می کنم

یه دکمه OK داره که می خوام این دکمه فشار داده بشه

چطور این کار را بکنم

فکر می کنم تکراری باشه ولی با جستجو پیداش نکردم
ممنون

_alish_
یک شنبه 06 دی 1383, 12:48 عصر
function EnumChildProc(Wnd: hWnd; SL: TStrings): BOOL; stdcall;
var
szFull: array[0..MAX_PATH] of Char; //Buffer for window caption
begin
Result := Wnd <> 0;
if Result then
begin
GetWindowText(Wnd, szFull, SizeOf(szFull)); // put window text in buffer
if (Pos(SL[0], StrPas(szFull)) > 0) // Test for text
and (SL.IndexOfObject(TObject(Wnd)) < 0) // Test for duplicate handles
then SL.AddObject(StrPas(szFull), TObject(Wnd)); // Add item to list
EnumChildWindows(Wnd, @EnumChildProc, Longint(SL)); //Recurse into child windows
end;
end;

function ClickButton(ParentWindow: Hwnd; ButtonCaption: string): Boolean;
var
SL: TStringList;
H: hWnd;
begin
SL := TStringList.Create;
try
SL.AddObject(ButtonCaption, nil); // First item in list is text to find
EnumChildWindows(ParentWindow, @EnumChildProc, Longint(SL));
H := 0;
case SL.Count of
1: ShowMessage('Window text not found.');
2: H := hWnd(SL.Objects[1]);
else
ShowMessage('Ambiguous text detected.');
end;
finally
SL.Free;
end;
Result := H <> 0;
if Result then PostMessage(H, BM_CLICK, 0, 0);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
h: hwnd;
begin
h := FindWindow(nil,Pchar('WizFrm'));
ClickButton(h,'بعدی');

end;