2017-01-03 1 views
-4

J'utilise un branchement simple pour enregistrer les touches d'un BarcodeScanner qui est une connexion via USB en tant que clavier. J'utilise cet exemple que j'ai trouvé en ligne:Comment empêcher un clavier d'écrire dans d'autres applications

using System.Windows.Forms; 

namespace RawInput 
{ 
public partial class Form1 : Form 
{ 
    InputDevice id; 
    int NumberOfKeyboards; 

    public Form1() 
    { 
     InitializeComponent(); 

     // Create a new InputDevice object, get the number of 
     // keyboards, and register the method which will handle the 
     // InputDevice KeyPressed event 
     id = new InputDevice(Handle); 
     NumberOfKeyboards = id.EnumerateDevices(); 
     id.KeyPressed += new InputDevice.DeviceEventHandler(m_KeyPressed); 
    } 

    // The WndProc is overridden to allow InputDevice to intercept 
    // messages to the window and thus catch WM_INPUT messages 
    protected override void WndProc(ref Message message) 
    { 
     if(id != null) 
     { 
      id.ProcessMessage(message); 
     } 
     base.WndProc(ref message); 
    } 

    private void m_KeyPressed(object sender, InputDevice.KeyControlEventArgs e) 
    { 
     //Replace() is just a cosmetic fix to stop ampersands turning into underlines 
     lbHandle.Text = e.Keyboard.deviceHandle.ToString(); 
     lbType.Text = e.Keyboard.deviceType; 
     lbName.Text = e.Keyboard.deviceName.Replace("&", "&&"); 
     lbDescription.Text = e.Keyboard.Name;   
     lbKey.Text = e.Keyboard.key.ToString(); 
     lbNumKeyboards.Text = NumberOfKeyboards.ToString(); 
     lbVKey.Text = e.Keyboard.vKey; 
    } 

    private void btnClose_Click(object sender, System.EventArgs e) 
    { 
     this.Close(); 
    } 

} 
} 

Le problème est, le scanner de codes à barres écrit selon l'application est mise au point. Est-il possible de rediriger toutes les données de cet appareil vers mon application pendant son exécution?

+3

«Je suis stupide de google après ça» Quoi? –

+0

L'a édité pour essayer de le sauver –

Répondre

0

Si votre périphérique est installé en tant que clavier (et non en tant que périphérique IHM sans clavier), cela n'est pas particulièrement simple car les claviers et les souris sont limités par le système d'exploitation.

This answer indique comment vous pourriez contourner cette restriction.

Bonne chance!