作者tropical72 (蓝影)
看板Programming
标题Fw: [讨论] 防广告视窗怎麽做的?
时间Wed Jan 11 21:54:33 2012
※ [本文转录自 C_and_CPP 看板 #1F3PEVvk ]
作者: tropical72 (蓝影) 看板: C_and_CPP
标题: [讨论] 防广告视窗怎麽做的?
时间: Wed Jan 11 21:50:19 2012
这是一份概念、技术、兴趣的讨论文章。
前言
最近上一些网站看教学影片很容易跳出游戏广告视窗,
只要该 web 上有任何 link 被点击,浏览器会再开一个 Instance 跳出来,
我觉得非常不悦、麻烦。
解决概念
我的方法很糟,用 FindWindow 、 SendMessage(hwnd, WM_DESTROY, 0, 0)
方式进行 close,缺点有下述二点
cpu 占有率 高
一开始用纯 main 方式下去做 ( 会先将 console 隐藏),
没 sleep, cpu 效能被卡住 ( 这结果并不意外), 後来改用 WinMain 设
SetTimer, 变成 polling 时间尴尬,设太大广告显示太久;设太小 cpu 占
有率高。
FindWindow 非治根本之道
用 FindWindow 方式当然必须先知道视窗抬头,如此下来遇到另二个问题
1. 没标题的视窗就不能用这方法。
2. 广告内容变更就又要更新一次关闭之黑名单,
维护的方式便是把黑名单全都列在一个 txt 里面,以後增加广告的时候
只要维护该黑名单即可。但建置与维护成本高,不过这应是「判别」
最稳的方式,较不容易误判。
目前黑名单我只有列不到 20 个视窗标题抬头。
问题讨论
1. Win32 API 有没有办法做到,当系统新增某个 process 时, 有办法
主动通知我的 ap 再去执行吗? (call back 方式, 非 polling 方式)
或换个问法:Win32 API 能否以 callback 方式监控 processes ?
2. 不知道一般在防广告视窗时是怎麽处理的?(直觉不会是列标题黑名单)
希望有想法的版友能不吝分享其概念。
初步有想过应该会分成 「崁在网页里」 与 「另开浏览器」 两种,
此处比较想知道「另开浏览器」的挡法 (有挡内崁网页的也欢迎分享)。
即使有一点想法、创意、没实际 run 过,也可以给一点参考意见。
最後先感谢各位版友不吝指导,谢谢各位。
--
世界上有种,
将 不可能 转换为 无限可能 的强大力量,
我称它为 - 信念。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 180.177.69.239
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 转录者: tropical72 (180.177.69.239), 时间: 01/11/2012 21:54:33