In one embodiment, a computer program blocks windows categorized as bad
windows, while allowing windows categorized as good windows to be
displayed. The computer program may categorize a window by consulting one
or more lists. In one embodiment, a list may be updated from time to time
to optimize the computer program and prevent program-obsolescence.
Techniques for defeating a window-blocking mechanism are also disclosed.
In one embodiment, a computer program detects if a window is of a type
that offers a product to a user. If so, the computer program provides a
separate window containing information regarding the product. In one
embodiment, a computer program detects if a user has a need for the
computer program. If so, the user is informed of the efficacy of the
computer program, which is then offered to the user.