Tak jak napisał olesio. Masz przykład który wciska na kalkulatorze z Windows XP (przy widoku standardowym, w nowszych wersjach Windows jest inny kalkulator i mogą się współrzędne przycisków nie zgadzać) kolejno cyfry 1,2 i 3. dodatkowo wcześniej ustawia okno kalkulatora na wierzch a jeżeli jest zminimalizowane to je przywraca.
var
hWin: HWND;
r: TRect;
x, y: Integer;
i: Integer;
begin
hWin:= FindWindow(nil, 'Kalkulator');
if IsIconic(hWin) then
ShowWindow(hWin, SW_RESTORE)
else
SetForegroundWindow(hWin);
GetWindowRect(hWin, r);
x:= r.Left + 35;
y:= r.Top + 200;
for i:=0 to 2 do
begin
x:= x + 40;
SetCursorPos(x,y);
mouse_event(MOUSEEVENTF_LEFTDOWN,x,y,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,x,y,0,0);
end;
end;
A niżej taki sam przykład który (przynajmniej teoretycznie) powinien działać nie zależnie od wersji Windows ponieważ pobiera sobie współrzędne przycisków ale w grze raczej (no chyba, że to gra w stylu saper) miejsca klikania muszą być na sztywno więc raczej zastosowanie będzie miał pierwszy przykład..
var
hWin, hBtn: HWND;
r: TRect;
x, y: Integer;
i: Integer;
begin
hWin:= FindWindow(nil, 'Kalkulator');
if IsIconic(hWin) then
ShowWindow(hWin, SW_RESTORE)
else
SetForegroundWindow(hWin);
for i:=1 to 3 do
begin
hBtn:= FindWindowEx(hWin, 0, nil, PAnsiChar(IntToStr(i)));
GetWindowRect(hBtn, r);
x:= r.Left + 1;
y:= r.Top + 1;
SetCursorPos(x,y);
mouse_event(MOUSEEVENTF_LEFTDOWN,x,y,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,x,y,0,0);
end;
end;