2017-02-02 97 views

回答

0

我找到了一個解決方案,但我無法獲得所有的功能,特別是手柄模式。

解決的辦法是聽設備鍵輸入與:

public MainPage() 
     { 

      Window.Current.Dispatcher.AcceleratorKeyActivated += Dispatcher_AcceleratorKeyActivated; 

      this.InitializeComponent(); 
     } 

     private void Dispatcher_AcceleratorKeyActivated(Windows.UI.Core.CoreDispatcher sender, Windows.UI.Core.AcceleratorKeyEventArgs args) 
     { 
      var eT = args.EventType; 
      if (CoreAcceleratorKeyEventType.KeyUp == eT) 
      { 
       var key = args.VirtualKey.ToString(); 
       switch (key) 
       { 
        case "Enter" : 
         //Do something 
         break; 
        case "255" : 
         //Do something 
         break; 
        default: 
         break; 
       } 
      } 
     } 

我已經發現,將被分配一個整數鍵是相當困難的來比較,因爲存在看似對沒有登記的虛擬鍵他們。所以我將虛擬鍵轉換爲一個字符串進行比較。

我發現整個值因設備而異,所以在另一個設置中「255」可能是「175」。我希望它不會從啓動到啓動...

所以總結起來,這是一個可以接受的解決方案,以滿足我的需求。我感覺好像編寫自己的設備驅動程序可能是最好的情況,但我沒有時間在這個項目中做到這一點,也沒有現在就知道p/invoke和HID對象的缺點。