2008-10-17 74 views
1

我們正在爲一個內部信息亭建立一些軟件。該軟件是一個帶嵌入式瀏覽器的基本.NET窗體。信息亭配有用戶踩踏的墊子。當用戶踩在墊子上時,它通過鍵盤發送一個鍵組合。當用戶踩下墊子時,它會發送一個不同的組合鍵。捕獲按鍵信息

我們想要做的是在我們的應用程序中查找按鍵組合,並根據用戶是否打開或關閉導致瀏覽器轉到其他網址。

你怎麼鉤住鍵盤來適應這種情況?

回答

2

如果您的窗口是活動窗口,那麼您可以簡單地覆蓋下面的表單ProcessCmdKey。

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 
{ 
    const int WM_KEYDOWN = 0x100; 
    const int WM_SYSKEYDOWN = 0x104; 

    if ((msg.Msg == WM_KEYDOWN) || (msg.Msg == WM_SYSKEYDOWN)) 
    { 
     switch (keyData) 
     { 
      case Keys.Down: 
       this.Text = "Down Arrow Captured"; 
       break; 

      case Keys.Up: 
       this.Text = "Up Arrow Captured"; 
       break; 

      case Keys.Tab: 
       this.Text = "Tab Key Captured"; 
       break; 

      case Keys.Control | Keys.M: 
       this.Text = "<CTRL> + M Captured"; 
       break; 

      case Keys.Alt | Keys.Z: 
       this.Text = "<ALT> + Z Captured"; 
       break; 
     } 
    } 

    return base.ProcessCmdKey(ref msg, keyData); 
} 
1

就在不久前,我在做有關USB讀卡器的類似搜索。

我遇到了this article on CodeProject用於處理設備的原始輸入。

我的主要目標是區分多個充當鍵盤的設備。您的設備可能有不同的界面。它也可能有一個SDK和文檔。我們不知道。

+0

非常有趣,因爲我在這個項目上的下一個任務是與一個CDC讀卡器連接,這個讀卡器也可以用作鍵盤。 – Jeremy 2008-10-17 22:58:52