Изменить границы формы из другого приложения

Я сейчас пытаюсь решить проблему с окном GameLuncher ..
поэтому мой вопрос:

Как я могу изменить свойства формы (мне нужно сделать форму с закругленными границами) окна другого процесса? Или даже может быть в том же процессе, потому что я мог сделать работу, вводя / подключая DLL.

Нажмите, чтобы увидеть, что я имею в виду, я хочу сделать

-5

Решение

procedure TForm6.btn1Click(Sender: TObject);
var
hWndX : HWND;
hRegX: HRGN;
begin
hWndX := FindWindow(nil,PChar('YourWindowName'));
if hWndX <> 0  then
begin
hRegX := CreateEllipticRgn(1, 1, 300, 300);
SetWindowLong(hWndX, GWL_STYLE, GetWindowLong(hWndX, GWL_STYLE) and not WS_BORDER and not WS_SIZEBOX and not WS_DLGFRAME );
SetWindowPos(hWndX, hWndX, Left, Top, Width, Height, SWP_FRAMECHANGED);
SetWindowRgn(hWndX, hRegX, True);
end
else
MessageBox(Handle,PChar('Cant find the window andle'),PChar('Error!'),0)
end;

Все эти вызовы API выглядят одинаково на всех языках.

1

Другие решения

Что вам нужно сделать, это:

1) Получить дескриптор окна Вы хотите «взломать».

2) Создайте область с округлой формой. Я обычно использую CreatePolyRgn () API для этой цели.

3) Применить регион к форме, используя SetWindowRgn () API.

*) Обратите внимание, что некоторые приложения контролируют свои регионы и отменяют ваши настройки. (Но это не очень вероятно.)

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector