Uchwyt z innego programu

0

Jak w języku delphi mogę pobrać uchwyt z okna innego uruchomionego w danej chwili programu znając jego nazwę?

0

FindWindow , ew. jak chcesz jeszcze do jakiejś kontrolki to FindWindowEx

0

A jak mógłbym przenieść tak uchwycone okno w inne miejsce na ekranie?

0

SetWindowPos

0

Próbowałem pobrać uchwyt programu paint i przenieść jego okno w inne miejsce, ale nie udało się. Jak musiałbym wypełnić te procedury, aby uchwycić okno jakiejś aplikacji i je przemieścić?

0

Kod jest poniżej, ale na pewno wszystko pokręciłem

var
   hand : hwnd;
   h2 : hwnd;
begin
     findwindowex(hand, h2, pchar('mspaint.exe'), pchar('Paint'));
end;

Wie może ktoś, jak to poprawić?

0
function EnumWindowsProc(hwnd: HWND; lParam: LPARAM): BOOL; stdcall;
var
  tytul: array[0..255] of Char;
begin
  GetWindowText(hwnd, @tytul, 255); //pobranie tekstu okna
  if AnsiPos(AnsiString('Paint'), AnsiString(@tytul)) <> 0 then //sprawdzenie czy owy teks zawiera słówko 'Paint'
    SetWindowPos(hwnd, 0,50, 50, 0, 0, SWP_NOSIZE or SWP_NOZORDER); //jeśli tak, to przesuwamy okno na pozycje 50, 50

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  EnumWindows(@EnumWindowsProc, 0); //zaczynamy przeglądać wszystkie okna funkcją EnumWindowsProc
end;
0

OK, działa.
Dzięki za pomoc

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