artykuły

KillAd

23:55
Wed, 9 October 2002
Artykuł opisuje popularny niegdyś program do zamykania wyskakujących okienek dla przeglądarki Internet Explorer. W tekście jest również zaprezentowany sposób i kawałek kodu w Delphi, pozwalający na wykonanie własnego programu, podobnie działającego.
Część informacji zawartych w artykule zdezaktualizowała się. Od momentu jego powstania, twórcy przeglądarki internetowej Internet Explorer zdążyli wprowadzić do niej mechanizm zapobiegający otwieraniu niechcianych okienek.
Przykład programu w Delphi służącego do zamykania określonych okien w systemie jest nadal aktualny.

Wstęp

Czy nie zdarzyło się Wam kiedyś, buszując po niektórych stronach, ujrzeć denerwujących, małych okienek. Te małe okienka, zwane popupami, najczęściej wyświetlają reklamy, bądź teksty, na których zależy webmasterowi takiego serwisu aby internauta odwiedzający jego serwis je spostrzegł. W rzeczywistości pierwsze co robimy to najechanie kursorem myszy na "x" w prawym górnym rogu okna. Jednak co zrobić gdy tych okien jest dużo więcej i uruchamiają się bez przerwy tylko spowalniając i tak już bardzo ociężałe połączenie? Z ratunkiem przychodzi nam bardzo ciekawy program o nazwie KillAd. Mały, bo wraz z polską lokalizacją zajmujący 164 kB, użyteczny, dający chwilę odpoczynku naszym nerwom i co najważniejsze darmowy program, potrafi znaleźć i zamknąć ciągle otwierające się popupy, które przecież dla wielu z nas są w pierwszej piątce rzeczy najbardziej niechcianych w sieci.

Opis programu

Aplikacja umożliwia zdefiniowanie reguł według których filtrowanie okien ma się odbywać. Do ustawienia są parametry, według których okno będzie uznawane za popup: nazwa okna, jego rozmiar, oraz wszystkie nowo otwarte.
Menu programu KillAd Program, po uruchomieniu, dodaje swoją ikonkę do zasobnika systemowego skąd możemy nim sterować włączając lub wyłączając czuwanie programu, zmieniając ustawienia lub dodawać nazwy popupów do bazy, tak zwanej Kill-Listy, oferowanej przez program, a zawierającej nazwy okien do zamknięcia. Standardowa Kill-Lista programu zawiera kilkanaście pozycji, jednak głupotą byłoby nie wprowadzenie możliwości modyfikacji listy celów dla naszego zabójcy. Tak więc, autor wprowadził i taką możliwość. Aby wywołać to okno klikamy na pozycję "Dodaj popup" w menu programu. Dialog dodawania nowego okna do kill-listy
Autor dał nam także możliwość utworzenia własnej listy wyjątków, która zawiera okna podlegające parametrom podanym w ustawieniach, a jednak nie przeznaczonych do zamknięcia.
Teraz postaram się wytłumaczyć wszystkie polecenia wywoływane z menu programu. Pierwszą opcją jest "Czuwanie". Pozwala zablokowanie zamykania okien przez program, aż do odwołania. Kolejną opcją jest "Tryb zamykania" - zamyka wszystkie nowo otwarte okna, które próbowaliśmy uruchomić po jego uaktywnieniu. Opcja "Odtwarzanie dźwięku", a w niej umieszczono możliwość wyboru przez użytkownika sterownika dźwięku (Wave, PC Beep) wybranie ustawień losowych lub jego brak. Taki bajer ;) Statystyki to bardzo przydatna rzecz w programie. Pokazują one czas jego pracy ilość pojawiających się popupów na godzinę, czas bezczynności, testowane przez program okna, śledzenie okien, popupy zamknięte oraz otwarte. A jeżeli nie podoba nam się statystyka, możemy ją po prostu zresetować zerując tym samym wszystkie wyniki. "Informację", "Pomoc" wiadomo do czego służy, tak samo jak "Wyjście". Dlaczego ominąłem "Ustawienia"? Dlatego żeby właśnie teraz je zaprezentować :) Do dzieła więc!
Tak maluje się okno Ustawień. Omówię tutaj tylko nieliczne opcję, przyznam się, że nie kapię do czego służą inne :) Opcja "Czekaj na zmianę nagłówka" pomorze zabezpieczyć okna przeglądarki przed przedwczesnym zamknięciem. Aplikacja najpierw poczeka na zmianę nagłówka okna przeglądarki na tytuł wczytywanej strony, a następnie w zależności od charakteru okna wykona jego zamknięcie. Możemy tu zmienić zawartość Kill-Listy i listy wyjątków.
"Zamknij każde okno mniejsze niż:" - ze względu na to, że popupy mają zwykle małe rozmiary możemy ustawić rozmiary okien podlegającym zamknięciu.
"Nie zamykaj okna większego niż:" - tu tak samo tyle że odwrotnie :)
Na samym dole "Opóźnienie zamykania" - czekaj ileś tam milisekund zanim zamkniesz podejrzane okno. Oczywiście wszystkie ustawienia możemy także zresetować do ustawień domyślnych.

Piszemy własny program

Myśleliście, że się obejdzie bez programowania - nic z tego! Spróbujemy tu omówić zagadnienie "Jak napisać podobny program?". Umożliwić nam ma to oczywiście Delphi. Teoretycznie jest to proste, gorzej z wykonaniem - żartowałem. Teoria głosi: "Wyszukaj okno, pobierz jego uchwyt i wyślij do niego komunikat WM_CLOSE (Zamknij)" Proste?
Będziemy potrzebować jednego pola tekstowego i jednego przycisku. Wszystko znajdziesz na palecie Standard. Napiszemy program który będzie zamykał okno o nazwie którą wpiszemy do pola tekstowego - fajnie? Oczywiście możecie potem udoskonalić projekt (aby choć trochę przypominał KillAd ;)
Po ustawieniu komponentów na formie klikamy podwójnie na nasz przycisk. Otwiera się edytor kodu gdzie wpisujemy już poważniejszy kod z użyciem uchwytu i komunikatów. Te parę linijek kodu wystarczy do spełnienia powyżej opisywanych czynności. Wyjaśnię później o co chodzi, ale najpierw spójrz na poniższy kod.
Wstaw coś takiego:

var Uchwyt : THandle; begin Uchwyt := FindWindow(nil, PChar(Edit1.Text)); PostMessage(Uchwyt, WM_CLOSE, 0, 0 );

Pierwsza linijka deklaruje zmienną typu Handle. Jest to uchwyt szukanego potem okna. Uchwyt (Handle) to element który w systemie Windows posiada każde okno. W następnej linijce (pobegin) naszej zmiennej jest przypisywany uchwyt wyszukanego okna, gdzieFindWindow()to funkcja szukająca okna o podanych parametrach (IpClassNamelub/orazIpWindowName). Gdy nie znamy jednego z tych parametrów pozostawiamy go wpisując w to miejsce słówkoniloznaczające w programowaniu "nic".
Kolejna linia wysyła komunikat do okna posiadającego dany uchwyt z rozkazem jego zamknięcia (WM_CLOSE). Te podstawy wystarczą aby kiedyś stworzyć swojego KillAd'a.

Zakończenie

Wielkie Dzięki ALL! Fajnie, że Was nie zanudziłem (a nie zanudziłem, prawda? ;). Podam jeszcze tylko namiary na autora programu, samą aplikację i spolszczenie. Fnx wszystkim za uwagę i żegnam!

12345
KillAd Autor opinii: Czytelnicy, data przesłania: 0

Podobne artykuly:

Skomentuj

Aby zamieścić komentarz, proszę włączyć JavaScript - niestety roboty spamujące dają mi niezmiernie popalić.






Komentarze czytelników

    Nie ma jeszcze żadnych komentarzy.
    Dexter