所以,我有一个想法,我需要将键盘事件触发到网页上的嵌入式 swf(在 Chrome 中)。
我正在处理一些限制:
- 输入事件必须来自 javascript
- 事件需要被触发到 swf
- 我无权访问 swf 的源
我如何做到这一点,并不重要。这更像是一个个人项目,所以它可以有尽可能多的漏洞。
我已经调查了直接从 javascript 触发,但我得出的结论是这根本不可能。还有其他人有什么想法吗?例如,我可以以某种方式使用 Win32 API 吗?
所以,我有一个想法,我需要将键盘事件触发到网页上的嵌入式 swf(在 Chrome 中)。
我正在处理一些限制:
我如何做到这一点,并不重要。这更像是一个个人项目,所以它可以有尽可能多的漏洞。
我已经调查了直接从 javascript 触发,但我得出的结论是这根本不可能。还有其他人有什么想法吗?例如,我可以以某种方式使用 Win32 API 吗?
我假设 SWF 是您自己的,在这种情况下您可以使用 ExternalInterface.call(); 方法直接在宿主页面中执行JS,您可以使用ExternalInterface.addCallback()函数将AS函数注册为可以在带有JS的SWF上调用。
如果你无法访问 swf 的源代码,这是不可能的,因为唯一的方法是在 flash 中注册回调并在 JS 中调用它们。当然,每个回调都必须使用 dispatchEvent 方法来触发你想要的事件(或者直接调用事件监听函数)。
解决问题的唯一方法是反编译 .swf(例如使用 Sothink SWF Decompiler)。如果它的代码没有被混淆,输出代码将足够清晰,可以阅读和重构它。反编译,添加回调(使用 ExternalInterface.addCallback())并重新编译。