2009-08-31 90 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函數)