将键击发送到嵌入在webbrowser控件中的Flash / Silverlight应用程序(主要完成)

时间:2011-04-30 03:33:49

标签: c# vb.net silverlight winapi sendkeys

注意:这似乎并不一定适用于Silverlight,我读过人们对Flash有同样的问题,所以请记住这一点。

我正在尝试编写一个程序,通过我自己的按钮控制Netflix(现在,最终它将扩展到移动远程控制应用程序),通过使用windows api直接向它发送热键。

  • 我能够检索Netflix Silverlight播放器使用的实际窗口句柄。
  • 我可以将键击发送到指定的窗口句柄(使用win api中的TranslateMessage函数)
  • 但出于某种原因,我不能让netflix播放器识别我发送的任何按键。
  • 在尝试发送按键之前,我尝试在win api中使用SetFocus函数,但这没有帮助。

我需要弄清楚的是,为什么它通过API键盘按键来区分通过api调用发送的键。

以下是我设置的方法(窗口类名称供参考):

  

Form1(WindowsForms10.Window.8.app.0.33c0d9d

     
    

WebBrowser控件(Shell DocObject View

         
      

HTML页面(Internet Explorer_Server

             
        

嵌入式Silverlight播放器(MicrosoftSilverlight

      
    
  

我想知道是否有人可以提供一些建议。非常感谢提前..希望有人可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

我尝试将KeyEvents发送到C#中的Flash应用程序(我想'破解'一个叫做“CLOP”的悲伤游戏)。

我注意到这不起作用。然而,我可以完美地将KeyEvents发送到浏览器本身,但即使在获得焦点后,flash插件似乎也忽略了这些。

我怀疑由于安全措施,这是不可能的。

我在StackOverflow上发现了以下线程,它解释了更多关于此的内容(这个也是关于flash的) Send keyboard and mouse events to Flash Movie