Przezroczystość okienek

0

Jak mogę zmienić przezroczystość dowolnego okna w systemie?

0
var Handle:THandle;
begin
Handle:=FindWindow(nil, 'Mój komputer');
if (Handle<>0) and (Handle<>INVALID_HANDLE_VALUE) then
  begin
  SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
  SetLayeredWindowAttributes(Handle, $000000, 200, LWA_ALPHA or LWA_COLORKEY);
  end;
end;

W funkcji SetLayeredWindowAttributes drugi argument to kolor całkowicie przezroczysty (tylko gdy użyto LWA_COLORKEY), trzeci to poziom przezroczystaści reszty obszaru (tylko gdy użyto LWA_ALPHA).

0

Ok dzięki wielkie. A jak mogę zmienić przezroczystość wszystkich okienek w systemie. Wiem że trzeba to zrobić w pętli i uzyskać Handle każdego z osobna, ale jak to zrobić to NO IDEA :/

0

Szukaj.

0

przerobiłem kod Szczawik

procedure TForm1.Timer1Timer(Sender: TObject);
var Handle:THandle;
begin
Handle:=FindWindow('CabinetWClass', nil);
if (Handle<>0) and (Handle<>INVALID_HANDLE_VALUE) then
  begin
  SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
  SetLayeredWindowAttributes(Handle, $00FF1AFF, 200, LWA_ALPHA or LWA_COLORKEY);
  end;
end;

teraz każdy otwarty folder będzie miał okno eksploratora przeźroczyste

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