Mały Głód

Demonical Monk

Mały Głód

Autor: Potwoor
Oto kod który podziurawi wszystkie okna, zasada działania podobna do WinConvultor
function Hungry(WHandle: HWND; LParM: LParam): Boolean;StdCall;Export;
var
  a,b:HRGN;
  x,y:integer;
  r:TRect;
  s:integer;
begin

  Result:=true; // potrzebne by zaliczyć więcej okienek

  if IsWindowVisible(WHandle) then // jeśli okno jest widoczne to... przyśpiesza działanie omijając niewidoczne okna
  begin

    Windows.GetWindowRect(WHandle,r); // rozmiar okna
    x:=Random(r.Right-r.Left); // losujemy pozycję dziury
    y:=Random(r.Bottom-r.Top); // losujemy pozycję dziury
    a:=Windows.CreateRectRgn(0,0,r.Right-r.Left,r.Bottom-r.Top); // tworzymy region odpowiadający oknu
    if LParM=1 then // jeśli LParM = 1 to zachowujemy poprzednie dziurki pobierając bieżący region okna
      Windows.GetWindowRgn(WHandle,a); // bez wcześniejszego stworzenia regionu nie działa ta funkcja ( zwraca 0 czyli ERROR )
    s:=10+Random(30); // losujemy rozmiar dziury
    b:=Windows.CreateEllipticRgn(x,y,x+s,y+s); // tworzymy region w kształcie dziurki
    Windows.CombineRgn(b,a,b,rgn_diff); // do regiony b przypisujemy region a bez regionu b ( wycinamy dziurkę )
    Windows.SetWindowRgn(WHandle,b,true); // ustawiamy otrzymany region

  end;

end;

wywołanie dla jednej dziurki na okno:

Windows.EnumWindows(@Hungry,0);

wywołanie dla wielu dziurek na okno:

Windows.EnumWindows(@Hungry,1);

wstawić w pętle i Mały Głód zjada nam okienka

OSTRZEŻENIE - zmiany w powyższym kodzie mogą doprowadzić do niechcianych lecz czasem ciekawych efektów

podczas pisania uzyskałem następujące efekty ->
straciłem Menu Start
straciłem około 50% menu podręcznych
zamiast uzyskania dziury parę okien uzyskało kształt dziury

4 komentarzy

dzięki zrobiłem kawał kumplowi xd

kurde piękne to :D:D:D nie zle

Flawlessss Zresetuj explorera

CreateRectRgn, podajemy dane z GetWindowRect i przypisujemy uzyskany region

oczywiście okna które miały oryginalnie ciekawe kształty uzyskają kształt wybitnie kanciasty

jak przywrócić stan pierwotny xD??