暂停和屏蔽右键网页中的Flash
如何暂停网页中的Flash?原理很简单,就是屏蔽Flash的消息即可。屏蔽右键也可以通过此方法
直接贴代码吧,加了注释,很容易就能懂了
新建工程,加一个WebBrowser,再加两个按钮。Flash 11.7.700.169 测试通过
- unit Unit1;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, OleCtrls, SHDocVw, StdCtrls;
- type
- TForm1 = class(TForm)
- Button1: TButton;
- Button2: TButton;
- WebBrowser1: TWebBrowser;
- Button3: TButton;
- procedure FormCreate(Sender: TObject);
- procedure WebBrowser1DocumentComplete(ASender: TObject;
- const pDisp: IDispatch; var URL: OleVariant);
- procedure Button1Click(Sender: TObject);
- procedure Button2Click(Sender: TObject);
- private
- procedure AppMessage(var Msg: TMsg; var Handled: Boolean);
- function GetFlashHwnd: HWND;
- public
- end;
- var
- Form1: TForm1;
- // Flash组件窗口句柄
- FlashHwnd: HWND = 0;
- // 控制“暂停”的开关变量
- FlashPause: Boolean = False;
- implementation
- {$R *.dfm}
- procedure TForm1.AppMessage(var Msg: TMsg; var Handled: Boolean);
- begin
- // 处理Flash窗口消息
- if (FlashHwnd <> 0) and (Msg.hwnd = FlashHwnd) then
- begin
- if FlashPause then
- begin
- // 仅仅保留窗口重绘相关消息,其余的消息全部过滤掉
- if not(Msg.message in [WM_PAINT, WM_WINDOWPOSCHANGED]) then
- begin
- Handled := True;
- Exit;
- end;
- end;
- end;
- end;
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- FlashPause := True;
- end;
- procedure TForm1.Button2Click(Sender: TObject);
- begin
- FlashPause := False;
- end;
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- // 设置进程消息处理过程
- Application.OnMessage := AppMessage;
- WebBrowser1.Navigate('http://www.4399.com/flash/90302_3.htm');
- end;
- function TForm1.GetFlashHwnd: HWND;
- begin
- Result := FindWindowEx(WebBrowser1.Handle, 0, 'Shell DocObject View', nil);
- if Result = 0 then
- Exit;
- Result := FindWindowEx(Result, 0, 'Internet Explorer_Server', nil);
- if Result = 0 then
- Exit;
- Result := FindWindowEx(Result, 0, 'MacromediaFlashPlayerActiveX', nil);
- end;
- procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;
- const pDisp: IDispatch; var URL: OleVariant);
- begin
- // 等页面加载完毕再取得其中的Flash窗口句柄
- if pDisp = WebBrowser1.Application then
- FlashHwnd := GetFlashHwnd;
- end;
- end.
http://blog.csdn.net/aqtata/article/details/8788962
暂停和屏蔽右键网页中的Flash的更多相关文章
- 网页中插入FLASH(swf文件),并且让Flash不遮挡HTML元素
一:网页中插入flash代码如下: 当然里面的很多属性可以去掉,根据具体的需求而定. 我们在网页中经常遇到播放flash,要正常播放flash就要用到OBJECT和EMBED这两个标签.鉴于火狐及 ...
- 网页中插入Flash动画(.swf)代码和常用参数设置
我们现在大部分人做网页,都是直接用DW插入flash,而且DW也是所见即所得,直接生成了相应的flash显示代码.可是我们又有多少人了解这些直接由DW生成的代码呢?其实我接触flash player标 ...
- asp.net 网页中播放 flash 和flv
需求:在网页中播放powerpoint保存的pps文件和mp4文件 经过查阅:发现网页上直接播放pps文件比较麻烦(office web apps server),所以通过工具,将pps文件转换为sw ...
- 如何用迅雷下载在网页中的Flash动画或课件
对于框架网页而言,看地址栏可以发现后缀不是SWF,就是说该网站没有直接把Flash给你,右击该Flash也没有下载选项. 此时虽然右下角是Flash,但是左边和上面网页部分还是正常的元素,右击这些 ...
- 网页中插入FLASH(swf文件)的html代码
一.简单插入flash图像<embed src="你的flash地址.swf"width="300" height="220"> ...
- 在网页中插入flash播放器,播放flv视频
效果图如下: 所用代码如下: <object id="FLVPlayer" height="480" width="640" code ...
- 在网页中怎样给已发布的Flash添加链接的方法(zhuan)
因为网页中的 Flash 是以控件形式出现的,优先级别较高,所以直接对它加链接是无效的,不过可以用按钮控件 BUTTON 来实现. 具体步骤 1.直接在按钮上加上onClick事件打开指定页面: &l ...
- 用flvplayer.swf在网页中播放视频(网页中flash视频播放的实现)
原:http://blog.csdn.net/ricciozhang/article/details/46868201 由于公司项目的需求,需要在展示一些信息的时候能够播放视频,拿到这个要求,我就从最 ...
- 网页中flash设置
我们现在大部分人做网页,都是直接用DW插入flash,而且DW也是所见即所得,直接生成了相应的flash显示代码.可是我们又有多少人了解这些直接由DW生成的代码呢?其实我接触flash player标 ...
随机推荐
- Unity3D 4.x 使用Mecanim实现动画控制
Unity3D 4.x 版本号之后提供了一种新的动画机制Mecanim,尽管眼下还支持之前的Animation.但看到Unity3D 4.3 预览版里Sprite的动画也是基于Animator的,可知 ...
- 再造 “手机QQ” 侧滑菜单(一)——实现侧滑效果
本系列文章中,我们将尝试再造手机QQ的侧滑菜单,力争最大限度接近手Q的实际效果,并使用 Auto Layout 仿造左侧菜单,实现和主视图的联动. 代码示例:https://github.com/jo ...
- 由于物化视图定义为on commit导致update更新基表慢的解决方案
由于物化视图定义为on commit导致update更新基表慢的解决方案 以下是模拟和解决测试过程: (模拟update慢的过程) 1.首先基于基表创建物化视图日志: create materiali ...
- java--匿名类
匿名类的使用 package Test; abstract class C525{ abstract void foo(); } class B525{ // 局部类只能访问外包方法中的final成员 ...
- Qt 状态机框架学习(没学会)
Qt状态机框架是基于状态图XML(SCXML) 实现的.从Qt4.6开始,它已经是QtCore模块的一部分.尽管它本身是蛮复杂的一套东西,但经过和Qt的事件系统(event system).信号槽(s ...
- 线程:Message和Runnable
原文地址http://blog.csdn.net/flowingflying/article/details/6370184 程序需要相应用户的操作,最要能在200ms(0.2s)之内,如果超过5秒没 ...
- Hadoop 源码分析(二四)FSNamesystem
以下轮到FSNamesystem 出场了. FSNamesystem.java 一共同拥有4573 行.而整个namenode 文件夹下全部的Java 程序总共也仅仅有16876 行,把FSNames ...
- 视频播放-SurfaceView
1.视图 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:too ...
- Apache Flink
Flink 剖析 1.概述 在如今数据爆炸的时代,企业的数据量与日俱增,大数据产品层出不穷.今天给大家分享一款产品—— Apache Flink,目前,已是 Apache 顶级项目之一.那么,接下来, ...
- 稳定婚姻问题和Gale-Shapley算法(转)
什么是算法?每当有人问作者这样的问题时,他总会引用这个例子:假如你是一个媒人,有若干个单身男子登门求助,还有同样多的单身女子也前来征婚.如果你已经知道这些女孩儿在每个男孩儿心目中的排名,以及男孩儿们在 ...