Gotowce » Żarty w Delphi

Mały Głód

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 komentarze

Romanos 2011-03-06 16:32

dzięki zrobiłem kawał kumplowi xd

Legalnl 2008-10-18 14:35

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

Flawlessss Zresetuj explorera

Potwoor_ 2008-08-23 17:09

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

Flawlessss 2008-08-22 21:14

jak przywrócić stan pierwotny xD??