2009-08-31 80 views
1

我有一个隐藏的窗口,我想发送一个按键给它。我试图实现的一个例子是一个将密钥F5发送到不是活动窗口的Web浏览器的应用程序。当收到F5按键时,Web浏览器会知道刷新当前页面。c#SendKey到一个隐藏的窗口

我也想将密钥的组合发送给应用程序,例如,按Ctrl + S。这种用法的一个例子可以是定时自动保存功能,用于没有自动保存的应用程序。这会让我不得不记得每5分钟保存一次。

C#是我的技术,这听起来现实吗?

回答

3

CodeProject文章WINAPI方法定义演示如何将按键发送到外部应用程序(使用C#源代码)。

0

您可以使用WinApi来达到此目的。 SendMessage或PostMessage方法将所需的消息发送到您的应用程序。 这里的SendMessage函数

[DllImport("user32.dll")] 
      public static extern int SendMessage(
        int hWnd,  // handle to destination window 
        uint Msg,  // message 
        long wParam, // first message parameter 
        long lParam // second message parameter 
       ); 

的C#定义和定义要发送类似的消息:

public const int %WM_MESSAGE_HERE% = %value%; 

检查Pinvoke - 巨大的资源包含.NET

+0

我将如何,例如,使用你的例子发送Ctrl + F5(即两个键一起按下)? – James 2009-09-02 19:00:47

0

这应该是可能的,看www.pinvoke.net和搜索sendinput,该页面应该告诉你,你需要知道的一切,还如何找到窗口(寻找FindWindow函数)