Я сейчас пытаюсь решить проблему с окном GameLuncher ..
поэтому мой вопрос:
Как я могу изменить свойства формы (мне нужно сделать форму с закругленными границами) окна другого процесса? Или даже может быть в том же процессе, потому что я мог сделать работу, вводя / подключая DLL.
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) Получить дескриптор окна Вы хотите «взломать».
2) Создайте область с округлой формой. Я обычно использую CreatePolyRgn () API для этой цели.
3) Применить регион к форме, используя SetWindowRgn () API.
*) Обратите внимание, что некоторые приложения контролируют свои регионы и отменяют ваши настройки. (Но это не очень вероятно.)