Kliknięcie myszki w nie aktywnym oknie.

0

Witam,

Czy mógłby ktoś napisać kod, który obsłuży kliknięcie myszki w wcześniej pobranej pozycji w <ort>nie aktywnym</ort> aktualnie oknie. Tzn. chodzi mi o to czy da się tak zrobić że ja będe np. grał w Sapera, a w tle w innym programie będę mógł symulować kliknięcia myszki.

Pozdrawiam

0

Poniżej masz kod, który ustawiał okno pluginu do WinAmpa o nazwie StreamRipper i klikał na przycisk
""Start" albo "Stop" w jego oknie. Tylko taką metodę znam, z ukazaniem danego okna na wierzchu.

procedure Start_Sr;
var
SR_Rect : TRect;
C, OldC : TPoint;
Lw, Gor : integer;
H, SR_HWND : HWND;
begin
H := GetForeGroundWindow;
GetCursorPos(OldC);
SR_HWND := FindWindow('sripper', nil);
SetForeGroundWindow(SR_HWND);
SendMessage(SR_HWND, WM_SYSCOMMAND, SC_RESTORE, 0);
GetWindowRect(SR_HWND, SR_Rect);
Lw := SR_Rect.Left;
Gor := SR_Rect.Top;
SetCursorPos(Lw + 40, Gor + 128);
GetCursorPos(C);
mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, C.x, C.y, 0, 0);
mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, C.x, C.y, 0, 0);
SetWindowPos(SR_HWND, SR_HWND, Lw, Gor, 0, 0, 0);
SetCursorPos(OldC.X, OldC.Y);
SetForeGroundWindow(H);
end;

procedure Stop_sr;
var
SR_Rect : TRect;
C, OldC : TPoint;
Lw, Gor : integer;
H, SR_HWND : HWND;
begin
H := GetForeGroundWindow;
GetCursorPos(OldC);
SR_HWND := FindWindow('sripper', nil);
SetForeGroundWindow(SR_HWND);
SendMessage(SR_HWND, WM_SYSCOMMAND, SC_RESTORE, 0);
GetWindowRect(SR_HWND, SR_Rect);
Lw := SR_Rect.Left;
Gor := SR_Rect.Top;
SetCursorPos(Lw + 94, Gor + 128);
GetCursorPos(C);
mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, C.x, C.y, 0, 0);
mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, C.x, C.y, 0, 0);
SetWindowPos(SR_HWND, SR_HWND, Lw, Gor, 0, 0, 0);
SetCursorPos(OldC.X, OldC.Y);
SetForeGroundWindow(H);
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1