2010-12-16 92 views
6

我開發了WPF中的屏幕鍵盤。我需要捕捉關鍵的 新聞事件(通過鍵盤),以便跟蹤Caps Lock,Shift 等(是否按下)。 請注意,當任何其他應用程序 (如記事本)打開時,我的應用程序會失去焦點。捕獲我的WPF應用程序中沒有焦點的按鍵事件

任何人都可以建議如何在WPF中實現這一點?簡而言之,我的WPF應用程序需要捕獲按鍵事件,即使是 ,儘管它沒有焦點。請幫助。

+0

您必須使用Windows API在Windows中註冊鍵盤鉤子。 https://blogs.msdn.microsoft.com/toub/2006/05/03/low-level-keyboard-hook-in-c/ – 2017-06-02 23:18:34

回答

3

我身後用一個簡單的代碼:

在XAML中我使用了一個名爲MyTestKey KeyDown事件。

<Window x:Class="MyApp.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     KeyDown="myTestKey" > 

這是該keydown日常的樣子,我檢查了1號:

private void myTestKey(object sender, KeyEventArgs e) 
{ 
      if ((e.Key == Key.D1) || (e.Key == Key.NumPad1)) 
      { 
       //do some stuff here 
       return; 
      } 
} 

這是一個簡單的方法來得到任意鍵。我希望這有幫助。

+1

簡單,工作很棒! – Jerry 2013-07-30 06:59:42

+7

當應用程序不集中時,這不起作用 – 2014-08-07 18:17:38

+6

當應用程序不是焦點時它不工作,它僅適用於焦點應用程序。錯誤的答案。 – 2015-11-09 17:55:43

相關問題