Jak mogę zmienić przezroczystość dowolnego okna w systemie?
0
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