如何暂停网页中的Flash?原理很简单,就是屏蔽Flash的消息即可。屏蔽右键也可以通过此方法

直接贴代码吧,加了注释,很容易就能懂了

新建工程,加一个WebBrowser,再加两个按钮。Flash 11.7.700.169 测试通过

  1. unit Unit1;
  2. interface
  3. uses
  4. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5. Dialogs, OleCtrls, SHDocVw, StdCtrls;
  6. type
  7. TForm1 = class(TForm)
  8. Button1: TButton;
  9. Button2: TButton;
  10. WebBrowser1: TWebBrowser;
  11. Button3: TButton;
  12. procedure FormCreate(Sender: TObject);
  13. procedure WebBrowser1DocumentComplete(ASender: TObject;
  14. const pDisp: IDispatch; var URL: OleVariant);
  15. procedure Button1Click(Sender: TObject);
  16. procedure Button2Click(Sender: TObject);
  17. private
  18. procedure AppMessage(var Msg: TMsg; var Handled: Boolean);
  19. function GetFlashHwnd: HWND;
  20. public
  21. end;
  22. var
  23. Form1: TForm1;
  24. // Flash组件窗口句柄
  25. FlashHwnd: HWND = 0;
  26. // 控制“暂停”的开关变量
  27. FlashPause: Boolean = False;
  28. implementation
  29. {$R *.dfm}
  30. procedure TForm1.AppMessage(var Msg: TMsg; var Handled: Boolean);
  31. begin
  32. // 处理Flash窗口消息
  33. if (FlashHwnd <> 0) and (Msg.hwnd = FlashHwnd) then
  34. begin
  35. if FlashPause then
  36. begin
  37. // 仅仅保留窗口重绘相关消息,其余的消息全部过滤掉
  38. if not(Msg.message in [WM_PAINT, WM_WINDOWPOSCHANGED]) then
  39. begin
  40. Handled := True;
  41. Exit;
  42. end;
  43. end;
  44. end;
  45. end;
  46. procedure TForm1.Button1Click(Sender: TObject);
  47. begin
  48. FlashPause := True;
  49. end;
  50. procedure TForm1.Button2Click(Sender: TObject);
  51. begin
  52. FlashPause := False;
  53. end;
  54. procedure TForm1.FormCreate(Sender: TObject);
  55. begin
  56. // 设置进程消息处理过程
  57. Application.OnMessage := AppMessage;
  58. WebBrowser1.Navigate('http://www.4399.com/flash/90302_3.htm');
  59. end;
  60. function TForm1.GetFlashHwnd: HWND;
  61. begin
  62. Result := FindWindowEx(WebBrowser1.Handle, 0, 'Shell DocObject View', nil);
  63. if Result = 0 then
  64. Exit;
  65. Result := FindWindowEx(Result, 0, 'Internet Explorer_Server', nil);
  66. if Result = 0 then
  67. Exit;
  68. Result := FindWindowEx(Result, 0, 'MacromediaFlashPlayerActiveX', nil);
  69. end;
  70. procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;
  71. const pDisp: IDispatch; var URL: OleVariant);
  72. begin
  73. // 等页面加载完毕再取得其中的Flash窗口句柄
  74. if pDisp = WebBrowser1.Application then
  75. FlashHwnd := GetFlashHwnd;
  76. end;
  77. end.

http://blog.csdn.net/aqtata/article/details/8788962

暂停和屏蔽右键网页中的Flash的更多相关文章

  1. 网页中插入FLASH(swf文件),并且让Flash不遮挡HTML元素

    一:网页中插入flash代码如下:  当然里面的很多属性可以去掉,根据具体的需求而定.  我们在网页中经常遇到播放flash,要正常播放flash就要用到OBJECT和EMBED这两个标签.鉴于火狐及 ...

  2. 网页中插入Flash动画(.swf)代码和常用参数设置

    我们现在大部分人做网页,都是直接用DW插入flash,而且DW也是所见即所得,直接生成了相应的flash显示代码.可是我们又有多少人了解这些直接由DW生成的代码呢?其实我接触flash player标 ...

  3. asp.net 网页中播放 flash 和flv

    需求:在网页中播放powerpoint保存的pps文件和mp4文件 经过查阅:发现网页上直接播放pps文件比较麻烦(office web apps server),所以通过工具,将pps文件转换为sw ...

  4. 如何用迅雷下载在网页中的Flash动画或课件

    对于框架网页而言,看地址栏可以发现后缀不是SWF,就是说该网站没有直接把Flash给你,右击该Flash也没有下载选项.   此时虽然右下角是Flash,但是左边和上面网页部分还是正常的元素,右击这些 ...

  5. 网页中插入FLASH(swf文件)的html代码

    一.简单插入flash图像<embed src="你的flash地址.swf"width="300" height="220"> ...

  6. 在网页中插入flash播放器,播放flv视频

    效果图如下: 所用代码如下: <object id="FLVPlayer" height="480" width="640" code ...

  7. 在网页中怎样给已发布的Flash添加链接的方法(zhuan)

    因为网页中的 Flash 是以控件形式出现的,优先级别较高,所以直接对它加链接是无效的,不过可以用按钮控件 BUTTON 来实现. 具体步骤 1.直接在按钮上加上onClick事件打开指定页面: &l ...

  8. 用flvplayer.swf在网页中播放视频(网页中flash视频播放的实现)

    原:http://blog.csdn.net/ricciozhang/article/details/46868201 由于公司项目的需求,需要在展示一些信息的时候能够播放视频,拿到这个要求,我就从最 ...

  9. 网页中flash设置

    我们现在大部分人做网页,都是直接用DW插入flash,而且DW也是所见即所得,直接生成了相应的flash显示代码.可是我们又有多少人了解这些直接由DW生成的代码呢?其实我接触flash player标 ...

随机推荐

  1. 一步一步重写 CodeIgniter 框架 (6) —— 实现在控制器Controller中加载View

    1. 控制器将模型类获得的数据,传递给视图进行显示,所以视图必须负责接收数据,另外重要的一点是当模型和视图分开后,多个模型的数据可以传递给一个视图进行展示,也可以说一个模型的数据在多个不同的视图中进行 ...

  2. javascript笔记整理(正则)

    RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具 var re=/e/; var re=new RegExp('e'); 正则表达式的 String 对象的方法 1.search- ...

  3. 基于Zlib算法的流压缩、字符串压缩源码

    原文:基于Zlib算法的流压缩.字符串压缩源码 Zlib.net官方源码demo中提供了压缩文件的源码算法.处于项目研发的需要,我需要对内存流进行压缩,由于zlib.net并无相关文字帮助只能自己看源 ...

  4. 配置SAP 采购合同审批

    需求: 采购合同类型是MK,采购组织是POSC,采购组PGC,标识:估计价格是空,总价有值0.00 - 9999999999.00 RMB 满足以上条件的时候需要审批该合同. 配置: spro-> ...

  5. 【linux kernel】 softirq 软中断讨论

    欢迎转载,转载时需保留作者信息,谢谢. 邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:http:// ...

  6. linux 下vi中关于删除某段,某行,或者全部删除的命令

    1,先打开某个文件: vi   filename 2,转到文件结尾 在命令模式输入 G       转到10行 在命令模式输入 10G 4,删除所有内容:先用G 转到文件尾,然后使用下面命令: :1, ...

  7. perl 当前包会覆盖父类的同名方法

    12.5.2 访问被覆盖的方法: 当一个类定义一个方法,那么该子过程覆盖任意基类中同名的方法. [root@wx03 test]# cat Horse.pm package Horse; our @I ...

  8. QT对话框中show和exec的区别

    转自:http://hi.baidu.com/wangjuns8/blog/item/24b382460dd1c1338694737d.html QDialog的显示有两个函数show()和exec( ...

  9. 安装m2eclipse

    Help->Eclipse Marketplace- 搜索 maven 安装 Maven Integration for Eclipse

  10. PHPCMS V9数据库配置文件database.php位置

    初次用PHPCMS V9的朋友可能找不到数据库配置文件,其实在官方的wiki中已经介绍了.那就是 caches\configs\database.php 文件. 初次用PHPCMS V9的朋友可能找不 ...