begin process at 2012 05 27 13:55:29
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > BLOQUEUR DE POP-UPS

BLOQUEUR DE POP-UPS


 Information sur la source

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Niveau :Débutant Date de création :24/02/2004 Date de mise à jour :05/08/2004 17:25:45 Vu / téléchargé :6 323 / 355

Auteur : Dvdmizo

Ecrire un message privé
Commentaire sur cette source (45)
Ajouter un commentaire et/ou une note

 Description

Marre des pop-ups, des pubs en tout genre quand vous naviguez... moi aussi !!
D'où ce petit programme qui ferme les pop-ups que vous selectionnez comme étant à bloquer.
C mon premier source sur le site je l'ai fais avec C++ Builder 5, y'a sûrement des améliorations à apporter alors n'hesitez pas à me faire des suggestions et éventuellement à faire les modifs directement dans le source...
J'espère que ça vous sera utile ;-)


 Conclusion

Nouvelle version !! (après un accouchement douloureux)

- Correction d'un bug qui empechait le programme de fonctionner sous Win 9x

- Maintenant le bloquage des pop-up se fait soit par le titre de fenetre soit en bloquant le domaine qui est récupéré soit dans la barre d'adresses soit dans le titre de fenetre

- Les URLs à bannir sont maintenant stockées dans le fichier Hosts de Windows ce qui permet un bloquage plus efficace (la fenêtre de pop-up ne s'ouvre même pas)

- Correction d'un petit bug (j'avais par mégarde effacé une ligne qui permettait de vider la liste des URLs bannis avant raffraichissement des données) à chaque modification de la liste les urls se retrouvaient en double puis en triple etc...

- Encore un petit bug corrigé, j'ai juste réajusté la taille des chaines de caractères pour éviter le plantage lorsqu'on tombe sur une page générée automatiquement dont l'URL est à ralonge (ex : recherche d'une adresse sur les pages jaunes, etc)

- Petite modification au niveau de la fermeture du programme, lorsqu'il était réduit et qu'on quittait windows le programme refusait de se fermer car il essayait de se remettre dans le Tray (alors qu'il y était déjà).

- Un grand merci à :
  - kimmelf2 et Anacr0x : pour la suggestion d'ajout des urls au fichier hosts

ainsi qu'à :
  
  - hilairenicolas
  - CyberP

pour leur soutient

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • Finilepubs.bprTélécharger ce fichier [Réservé aux membres club]2 593 octets
  • Finilepubs.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier654 octets
  • Finilepubs.exeTélécharger ce fichier [Réservé aux membres club]640 512 octets
  • Finilepubs.resTélécharger ce fichier [Réservé aux membres club]876 octets
  • tray.bmpTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 590 octets
  • main.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier18 802 octets
  • main.dfmTélécharger ce fichier [Réservé aux membres club]14 536 octets
  • main.hTélécharger ce fichier [Réservé aux membres club]Voir ce fichier2 324 octets

Télécharger le zip


 Historique

16 juillet 2004 16:42:56 :
apparement le zip n'était plus disponible alors je le remet....
05 août 2004 17:25:45 :
encore des problèmes de longueurs de chaines qui ont été corrigés ...

 Sources de la même categorie

Source avec Zip KISIEL CD INFO DRIVE par kisiel0147852
Source avec une capture SUPPRESSION DES REDONDANCES DE FICHIERS par cyberntique
Source avec Zip ÉDITEUR DE RECTANGLES EN CONSOLE par seoseo
CONVERSION DE FICHIER EN FICHIER BMP par seoseo
Source avec Zip DETECTEUR EJP par idpro

Commentaires et avis

Commentaire de hilairenicolas le 24/02/2004 16:04:18

Qu'est-ce qui est le plus intéressant,
un timer qui énumere les fenetres ou un hook sur la création de fenetres ?

sinon, le principe est bien.

Amélioration ? un truc automatique bien sur, qui pourrait se baser sur le contenu html de la page, avec un apprentissage pourquoi pas ; et apres tu le vends :)

Commentaire de Dvdmizo le 24/02/2004 17:01:20

j'avoue, j'ai choisi la solution de facilité en utilisant un timer ;)
mais en fait je voulais que ça soit opérationnel rapidement...
l'idée de faire un hook sur a création de fenêtres serait une bonne idée (c'est sûr que ça serait moins lourd) mais je maitrise pas bien.
si tu avais un exemple, ça pourrait m'aider :)

Commentaire de hilairenicolas le 24/02/2004 17:55:42

Je ne sais pas justement si c'est plus lourd ou pas, c'est pour ca que je te demandais les raisons de ton choix pour le timer.

pour des exemples de hook sur création de fenetre, je crois bien en avoir vu passer sur le site, jette un coup d'oeil

Commentaire de Kirua le 25/02/2004 02:13:54

l'ennui avec les hook c'est que tu dois obligatoirement les placer dans une dll, et ça c'est pas très amusant si vous voulez mon avis :-(

pour ce qui est de l'apprentissage, tu peux déjà essayer de voir les formats des popups de pub, souvent les banderoles ont une taille normalisée, ça devrait pouvoir se repérer.

Commentaire de Dvdmizo le 25/02/2004 08:42:07

Je ne suis pas sûr que le format des fenetres soit un bon critère... les pop-ups n'ont pas toujours la même taille :(
je crois plutot que l'idéal serait de pouvoir récuperer l'adresse http d'où vient la pub (ça serait plus efficace) mais là ça reviendrait presque à refaire un firewall... quelqu'un aurait une piste ? comment je pourrais faire ça ?

Commentaire de hilairenicolas le 25/02/2004 09:45:23

Je pense que tu devrais mélanger les techniques, et effectivement regarder l'url et la comparer à une liste d'url "à bannir" est une bonne idée, mais ca n'a rien d'un firewall...
:)

Commentaire de Dvdmizo le 25/02/2004 11:28:48

effectivement j'ai peut-être (sûrement même) un peu grossi la chose en disant que c'était comme un firewall... :p
par contre je cherche comment récupérer l'url dans la barre d'adresse et pour l'instant c'est plutot confus.
Si quelqu'un peu me mettre sur la voie ça serai bien sympas ;)
merci

Commentaire de hilairenicolas le 25/02/2004 14:14:40

Finalement, à la réflexion, je suis pas sur que ca soit si interessant de faire une liste d'url à bannir, parce que en observant un peu les pop-ups, finalement, c'est souvent un site web qui s'ouvre. et donc apres, on ne pourrait plus visiter certains sites (imaginons un pop-up pour messenger de microsoft, et hop, tu peux pu aller voir le site de microsoft)
Je pense que ce qui pourrait etre pas mal, c'est avec un hook sur création de fenetre, de voir quelle fenetre à été créee à partir d'une autre, voir dans la fenetre mere l'adresse du site quelle contient et bloquer les pop-ups dont l'adresse ne fait pas partie du domaine de l'@ mere. mais cela pose le probleme des liens vraiment proposés et pas des pops-up.

Sinon, ce qu'on pourrait envisager, c'est de faire un compteur de temps, souvent les pop-ups s'ouvrent tres rapidement apres l'ouverture de la page, et empecher seulement celles ouvertes dans un certain laps de temps de s'ouvrir.

Pas si simple finalement :))

Commentaire de Dvdmizo le 25/02/2004 14:59:44

Comme tu dis : "pas si simple" :)
L'idéal serait de pouvoir combiner toutes ces possibilités en les rendant paramètrables à la demande plutot qu'un système purement automatique. je m'explique :
parfois certaines URL ne servent "qu'à" diffuser des publicités (ex : doubleclick, www.regiedepub.com, etc) donc bloquer tout le domaine ne pose pas de problème, d'autres fois le fait de bloquer un domaine pose problème, bloquer les pop-up qui s'ouvrent au bout de quelques secondes n'est pas forcement la solution des fois certains sites utilisent des pop-up pour proposer des options de navigations...
c'est  compliqué mais ça peut être un bon défi pour un programmeur(et un bon utilitaire pour les utilisateurs)  ;)

Commentaire de hilairenicolas le 25/02/2004 15:05:31

Bloquer les pop-us qui ne font pas partie du domaine et qui s'ouvrent au bout de quelques secondes peut-etre ...

C'est un bon défi effectivement, tu le releves ?

Commentaire de temoin le 25/02/2004 17:22:40

allo vous pouvez m'aider je veux compiler ton prog avec visual c++6 ca me donne cette eurreur merci de votre aide
fatal error C1083: Cannot open include file: 'vcl.h': No such file or directory

j'ai essayer avec borland c++ 5     26 erreurs dans la compile

Commentaire de Kirua le 25/02/2004 17:35:43

ben la VCL est une bibliothèque propriétaire de Borland/Inprise, donc avec VC tu pourras jamais compiler le prog.

Commentaire de Dvdmizo le 25/02/2004 17:42:45

il faut utiliser Borland C++ Builder 5 pour que ça marche
le fichier 'vcl.h'  contient toutes les définitions d'objets visuels (fenetres, boutons, menus déroulants, etc)
mais le gros du programme doit pouvoir être porté sur VC assez facilement je pense...

Commentaire de Dvdmizo le 25/02/2004 17:45:20

mon cher hilairenicolas je vais tenter de relever le défi ...mais pour le moment c pas gagné.
En ce moment je suis sur une piste interressante pour au récupérer les URL.
On va voir ce que ça donne ;)

Commentaire de kimmelf2 le 25/02/2004 23:16:42

y'a qd meme une possibilite par l'url, c'est dans le cas des regies publicitaires.

imaginons la regie pub www.regie.com
quasiment tout le temps, les regies disposent de sous-domaines du type ad.regie.com , pub.regie.com ....

il suffit de bannir le sous-domaine comme ca la pub est eliminee

et eliminer la pub , IE (et sans doute les autres navigateurs) il sait faire !!! (il parait)

c'est une info que j'ai lu y'a quelques temps, faudrai voire si elle est exacte ... :
lors d'une requete (site, image ...) le navigateur commence par faire une requete DNS pour connaitre l'IP qui correspond au nom de domaine. Il dispose, en outre, d'une table (stockee dans un fichier sur le DD) qui contient des correspondances IP/domaine.

y'a qu'a ecrire dans ce fichier que pub.regie.com correspond a 127.0.0.1

il parais que ca permettrais de virer les popups ... perso je vois pas pourquoi ca marcherais ! a mon avis, la popup s'ouvrira et indiquera un truc genre "serveur indisponible"

m'enfin je distille l'info ;-)

Commentaire de CyberP le 26/02/2004 08:35:54

les popups sont en général composés uniquement d'une image, il faudrait donc récupérer la source du popup et voir s'il y a quelque chose hors des balises, si ce n'est pas le cas et que la fenêtre est effectivement un popup (sans les barres), alors il faudrait l'ajouter automatiquement à la liste noire... mais je ne sais pas comment récupérer la source (ce serait idiot de récupérer l'url et de retélécharger la page, car si on a une connexion lente, il faudrait attendre une dizaine de secondes jusqu'à ce que le popup se ferme)

Commentaire de Dvdmizo le 26/02/2004 09:47:10

en fait si on détecte l'url directement dans la barre d'adresses on ne lasse pas le temps à la page de se charger, ce qui est interressant si on a une connexion lente.
l'url sera déjà dans la barre d'adresse avant qu'on ait commencé le téléchargement de la page donc la fenetre sera fermée tout de suite.
ce qui n'est pas le cas si on bloqu par le titre de la fenetre (il faut attendre de recevoir au moins la balise <TITLE> de la page)

Commentaire de CyberP le 26/02/2004 10:43:13

le plus simple serait de bloquer tous les popups (sans les différentes barres donc) dont le nom de domaine de l'url n'est pas celui du site où il s'est ouvert

Commentaire de hilairenicolas le 26/02/2004 11:21:01

Mais si tu fais de la navigation de site en site ?
imaginons, une recherche avec google, tu cliques sur un lien, une fenetre s'ouvre avec une @ qui n'est pas celle du domaine de départ.

Comment pallier cet inconvénient ?

Commentaire de CyberP le 26/02/2004 13:34:51

il suffit de détecter si la fenêtre a une barre de status, un menu, etc, on doit pouvoir détecter ca (il suffit de regarder si ca renvoie null quand on fait GetDlgItem), et si elle n'en a pas, on peut virer

Commentaire de Dvdmizo le 26/02/2004 14:12:16

pas forcément... par exemple sur certains forums lorsque tu veux voir la liste des utilisateurs inscrits (pour envoyer un message privé) il t'ouvre une fenêtre sans barre de status ni menu avec juste la barre de titre et la liste des membres dans le corps de la fenêtre, dans ce cas si tu fermes la fenetre ça risque de poser problème...
et à mon avis y'a d'autres cas similaires où ça risque de coincer.
En fait, je suis pas sûr qu'on puisse faire un filtrage purement automatique

Commentaire de CyberP le 26/02/2004 14:20:07

je répète ce que j'ai dit plus haut : (la fin du message répond à ta question)

le plus simple serait de bloquer tous les popups (sans les différentes barres donc) dont le nom de domaine de l'url n'est pas celui du site où il s'est ouvert

Commentaire de Dvdmizo le 26/02/2004 14:27:25

ah ok !! je comprend mieux ce que tu veux dire :)
en fait pour le moment je vois pas trop comment savoir quelle fenetre à ouvert telle autre...
Si tu as une idée ou un exemple ils sont les bienvenus

Commentaire de CyberP le 26/02/2004 14:36:07

oui c'est vrai ca pose problème ca...

peut être que internet explorer lorsqu'il créé le popup le met enfant par rapport à la page principale... je ne sais pas...

sinon on peut peut être détecter quelle fenêtre a changé de titre en dernier (cad la page commence à se charger) avant l'ouverture du popup, mais ca posera toujours problème (le hasard entre 2 pages ou bien un script qui permet de faire une petite animation au niveau du titre)

Commentaire de DelphiCool le 26/02/2004 19:04:14 administrateur CS

Salut,
avez vous des infos sur le Hook sur la création de fenêtre?

Commentaire de CyberP le 26/02/2004 19:44:12

j'ai eu une idée : il suffit de regarder le nom de domaine de toutes les fenêtres d'internet explorer ouvertes, et si le nom de domaine d'une popup est retrouvé nulle part ailleurs, alors il faut le fermer

si on surfe sur un site et qu'une pub pour ce site apparait autre part (ce qui doit être très rare), ca ne geine pas je pense

Commentaire de Anacr0x le 26/02/2004 20:46:37

euh... personnelement, j'ai une idée bien plus simple...
Pour moi, il suffit de bidouiller le fichier host (sous windows du moins), qui bloque tous les popups lorsqu'il est bien configuré.
En tt cas, c'est ce que fait Spybot S&D et ça marche très bien chez moi

De plus, si cette solution vout convient, ca aura l'avantage de ne devoir éxécuté le prog qu'une seule fois et d'être très peu gourmand en mémoire (aucun prog qui tourne en arrière plan)

PS : si ca vous intéresse, je peut vous passé mon fichier host pour que vous voyez la liste des adresses banies

Commentaire de Dvdmizo le 27/02/2004 09:14:40

Anacr0x : bloquer une adresse avec le fichier host ça doit sûrement marcher mais ça ferme pas la fenetre et moi je suis fainéant.  ;o)

DelphiCool : sinon y'a un nouveau source qui vient d'être posté pour faire un hook sur la création de fenêtre.
http://www.cppfrance.com/code.aspx?ID=20786
je vais voir si je peux adapter ça à mon prog (ça sera sûrement moins gourmant en ressources et plus rapide qu'un timer).

CyberP : J'ai aussi l'intention de tester ta méthode pour voir si ça peut être plus simple, mais je ne sais pas encore comment detecter les différentes barres...quoique j'ai ma petite idée :)

Commentaire de Anacr0x le 27/02/2004 13:37:51

"bloquer une adresse avec le fichier host ça doit sûrement marcher mais ça ferme pas la fenetre"
->effectivement, ca la ferme pas, ca l'empeche de s'ouvrir, tu trouve pas ça mieu ?

"et moi je suis fainéant.  ;o)"
->ben justement, je te propose une solution plus simple, je ne l'ai pas testé, mais je pense qu'elle peut marché plus efficacement et sans timer ou hook global mis dans une dll... après c'est a toi de voir

Commentaire de DelphiCool le 27/02/2004 13:52:23 administrateur CS

Merci Dvdmizo

je jette un oeuil

Commentaire de Dvdmizo le 27/02/2004 15:15:47

Anacr0x : j'ai essayé de modifier mon fichier host mais ça marche pas :(
pourrais tu m'envoyer le tien pour que je vois où je me suis planté ?
et pourrais tu me dire exactement où il doit être pour que ça marche ?
merci

Commentaire de CyberP le 27/02/2004 15:35:22

C'est un comble ca, quelqu'un propose un commentaire pour éviter d'utiliser le programme !

Commentaire de Dvdmizo le 27/02/2004 16:09:29

CyberP : si ça peut completer le programme, je peux inclure une fonction qui renseigne le fichier host avec les adresses à banir...
mais je me demande quand même si c'est vraiment efficace parce que pour que ça fonctionne il faut qu'une fenetre s'ouvre puis qu'elle fasse une requete sur l'URL (donc c'est déja trop tard, la fenetre est déjà ouverte) et surtout si on redirige le tout vers 127.0.0.1 ça risque (comme le dit plus haut kimmelf2) d'afficher une fenetre avec un message du genre "Impossible de trouver le serveur" mais bon je demande quand même à voir...
Et comme on dit : "qui ne tente rien n'a rien !"

Commentaire de Anacr0x le 27/02/2004 17:16:26

CyberP : je ne cherche pas à critiquer ce programme et encore moins a vous dissuader de l'utilisé. Je propose juste une solution pour qu'il soit plus performant, après tu le prend comme tu veux

En tt cas, mon fichier host est downloadable ici : http://anacr0x.free.fr/hosts.zip

après, vous décompresser et mettez le fichier dans WINDOWS/system32/drivers/etc/

PS : faites une sauvegarde de votre ancien fichier host avant de le remplacer (au cas ou...)

Commentaire de Dvdmizo le 27/02/2004 18:07:29

j'ai essayé mais apparement ça ne fonctionne pas :(
par contre si je fais un ping sur le nom de domaine là il me redirige bien vers 127.0.0.1
je me demande si Spybot ne se sert pas tout simplement de ce fichier pour stocker les URLs à bannir (un peu comme le fait mon programme).
mais ça marche chez toi ??

Commentaire de Anacr0x le 27/02/2004 18:17:20

...
chez moi ca marche très bien.... g plus aucun popup
Mais peu être que Spybot fait autre chose qui permet ca (en tt cas, il ne tourne pas en fond, donc il ne fait pas comme le tien)

enfin, si ca ne marche vraiment pas, dsl de vous avoir embété pour rien :(

Commentaire de CyberP le 27/02/2004 19:37:42

non, non je ne disais pas que tu critiquais la source, je trouve juste ca marrant (et tu ne nous as pas embêté)

Commentaire de Anacr0x le 27/02/2004 19:58:19

lol
Désolé, j'avais mal compris ta phrase (>_<)

Commentaire de Dvdmizo le 27/02/2004 20:17:07

t'inquietes pas tu nous a pas embêté ;)
en plus j'ai dit des betises !!! ça marche !!! je m'y prenais mal pour tester....
ce que je faisais c'est que j'essayais une des adresses de ton fichier avec mon fichier host et je vérifiais que ça passais et ensuite je remplaçais le fichier host et sans refermer la fenetre IExplorer je faisais 'actualiser' et j'avais toujours la page qui s'affichait.
j'ai retesté et en fait ça bloque bien le chargement des pages et c'est génial, les pop-up n'apparaissent même pas !!

Anacr0x : mille excuses :( j'ai douté de ta parole... la honte sur moi pour encore 7 générations tiens pour la peine je me flagèle avec des orties fraiches (aïe !  aïe ! aïe ... ça pique) :)

bon bah il va bientot y avoir une nouvelle version je crois :)

Commentaire de Anacr0x le 27/02/2004 20:31:21

ahhhhhhhh.... content que ça marche (^_^)
Tu n'as plus qu'a m'appelé "Ô grand maître vénéré" maintenant (si si) !
Nan ? pas d'accord ? :)
bon tant pi, ca couté rien d'essayer...

Commentaire de kimmelf2 le 28/02/2004 18:55:41

hey c'est pas juste, j'avais deja donne l'idee du fichier host avant !!!

donc ca devrais etre moi le grand maitre venere !!!

non plus ????

bof tant pis, ca me coute pas plus cher que Anacr0x d'essayer ...

:-)

Commentaire de Dvdmizo le 02/03/2004 16:56:55

Et voilà ! La nouvelle version est enfin dispo :)
par contre il reste quand même un point obscur...
j'ai testé l'ajout des urls dans le fichier hosts chez moi et là pas de problème par contre au boulot ça marche pas.
je suis derrière un proxy vous croyez que ça a un lien ?

Commentaire de kimmelf2 le 02/03/2004 23:24:28

je connais pas trop les reseaux car pour faire un reseau, faut plusieurs ordi et ca coute + cher qu'un seul ;-)

je pencherais pour une sorte de "host collectif", peut etre un serveur DNS ??? ca serai assez logique que IE utilise un tel serveur plutot que son propre fichier car comme ca il connais la correspondance domaine/IP de tous les sites demandes par tous les pcs du reseau

et si je me suis pas trompe .... bonne chance ;-) amoin que tu soit copain avec l'admin reseau :-D

Commentaire de guilOooo le 16/06/2004 14:24:50

Heeuu..
Quand j'éssaye d'ouvrir le zip, on me dit que le dossier n'est pas valide où endommagé...
Vous pourriez me donner un lien alternatif pour le télécharger ?
Merci

Commentaire de Dvdmizo le 16/07/2004 16:46:35

normalement c'est remis ;)

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,061 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales