我開發了WPF中的屏幕鍵盤。我需要捕捉關鍵的 新聞事件(通過鍵盤),以便跟蹤Caps Lock,Shift 等(是否按下)。 請注意,當任何其他應用程序 (如記事本)打開時,我的應用程序會失去焦點。捕獲我的WPF應用程序中沒有焦點的按鍵事件
任何人都可以建議如何在WPF中實現這一點?簡而言之,我的WPF應用程序需要捕獲按鍵事件,即使是 ,儘管它沒有焦點。請幫助。
我開發了WPF中的屏幕鍵盤。我需要捕捉關鍵的 新聞事件(通過鍵盤),以便跟蹤Caps Lock,Shift 等(是否按下)。 請注意,當任何其他應用程序 (如記事本)打開時,我的應用程序會失去焦點。捕獲我的WPF應用程序中沒有焦點的按鍵事件
任何人都可以建議如何在WPF中實現這一點?簡而言之,我的WPF應用程序需要捕獲按鍵事件,即使是 ,儘管它沒有焦點。請幫助。
我身後用一個簡單的代碼:
在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;
}
}
這是一個簡單的方法來得到任意鍵。我希望這有幫助。
簡單,工作很棒! – Jerry 2013-07-30 06:59:42
當應用程序不集中時,這不起作用 – 2014-08-07 18:17:38
當應用程序不是焦點時它不工作,它僅適用於焦點應用程序。錯誤的答案。 – 2015-11-09 17:55:43
您必須使用Windows API在Windows中註冊鍵盤鉤子。 https://blogs.msdn.microsoft.com/toub/2006/05/03/low-level-keyboard-hook-in-c/ – 2017-06-02 23:18:34