我想了一下:解决方法是想办法获得ShockwaveFlash对象的句柄,然后用一个HOOK钩住它,从而达到拦截
Flash上的一切鼠标键盘活动。因为在Flash播放当中,其默认的鼠标键盘事件其实只有一个就是右键菜单
的弹出,只要截获WM_RBUTTONDOWN(或者NM_RCLICK)消息,就可以完全控制它,甚至加入自己的响应事件。
关于HOOK的制作我就不多言了,源码也好,控件也好已经很多了!你自己找找!
我下面只是想说说如何获得ShockwaveFlash对象句柄的问题。
因为ShockwaveFlash根本没有直接提供对象句柄,所以要获得其句柄,只有通过获得该对象中某点的坐标,
然后用WindowFromPoint函数获得该点所在窗口的句柄来实现。因为你是全屏播放所以难度一下子降低很多,
从屏幕上随意选取一点坐标即可!
示例过程如下:
YourFlashHandle:=WindowFromPoint(x,y);
YourHOOK.HwndHOOK:=YourFlashHandle;
IF YourHOOK.Message(WM_RBUTTONDOWN)=TRUE THEN '你想要做的事'