Je tente de créer une application qui permet à un individu de numériser un code-barres, puis capturer une image. Ces choses ne devraient pas se produire en même temps. L'utilisateur doit être en mesure de vérifier deux fois de balayage de codes à barres, puis déplacez sur la partie de l'application qui de capture d'image poignées. P>
Les numéros de ligne font référence à mon code dans le lien friendpaste dans la section code ci-dessous. Em > p>
J'ai deux gestionnaires d'événements en place: l'un pour l'événement de décodage de la commande du scanner de codes à barres et un contrôle pour appeler la capture d'image par un événement KeyDown. Le contrôle de décodage a son propre événement / gestionnaire DecodeEventHandler et un ensemble de touche de déclenchement avec un ENUM (LNS 201 et 202). Toutefois, le contrôle de l'image, ne fonctionne pas. Ses états de documentation que le formulaire doit avoir un gestionnaire d'événements KeyDown (ln 120) et la ENUM touche de déclenchement (ln 178). Lors de l'exécution de l'application (sans SelectedIndexChanged [En 76] Le gestionnaire d'événements en place), le scanner de codes à barres fonctionne très bien, mais passage à l'onglet (ou le formulaire, comme je l'ai essayé des formulaires séparés, bien), avec le contrôle de la capture d'image et frapper la gâchette clé sur l'appareil (SCAN dans ce cas) provoque l'ordinateur de poche d'agir comme il scanne toujours un code à barres (feux rouges se allument, la lumière objectif vert est de montrer, émet un signal sonore lors de la rencontre d'un code à barres) au lieu du comportement normalement affichés lors de l'utilisation le contrôle de l'image (pas de lumières, ou lumières blanches comme un flash). p>
http://friendpaste.com/355cQOCghvPkE5YR29lthO p>
J'affiché le code comme un lien friendpaste parce qu'il est un peu long (~ 230 lignes). Permettez-moi de savoir si je devrais inclure ici. P>
Demandez loin et je ferai de mon mieux! P>
Je l'ai marqué ce Honeywell Dolphin 9500, mais je suis un nouvel utilisateur. P>
Ce que j'ai essayé h2>
code h2>
Vous avez besoin d'informations supplémentaires? H2>
3 Réponses :
La raison pour laquelle je pense que vous ne pouvez pas accéder au gestionnaire code> code> est que celui qui est pour le Essayez de faire quelque chose comme ça et voyez s'il attrape la clé tabcontrol1_indexchanged code> est un
System.EventHandler Code> qui est une forme générique de la touche code> code>.
code> p>
Tout d'abord, merci pour la réponse. Cependant, avec ou sans le gestionnaire d'événements sélectionné, je ne peux pas frapper le gestionnaire d'événements de clé. Cela de côté, j'ai essayé ce que vous avez dit de toute façon mais en vain. Merci encore, je ne savais pas que et tout apprentissage est un bon apprentissage! Edit Laissez-moi être plus clair: B> J'ai essayé ce que vous avez dit, mais sur la touche, la sélection de la touche, la sélection suivante n'a pas été appelée.
Ceci est un peu un hack, mais je pense que cela va fonctionner. Set AllKeys signature P / Invoke: http://blogs.msdn.com/b/mikefrancis/archive/2009/03/28/porting-gapi-keys-to-wm-6-1- et 6-5.aspx p> informations générales AllKeys: http://windowsteamblog.com/windows_phone/b/windowsphone /archive/2009/07/14/just-say-no-to-gapi-what-you-need-to-know-about-allkeys-and-input-management.aspx p> Il semble que le contrôle de décodage est avalait le message dont vous avez besoin. Vous pouvez essayer de contacter le support développeur HHP. Si elles ont un forum de soutien aux développeurs en ligne qui peut fonctionner aussi. En guise de test, ce qui se passe si vous commencez à commenter les lignes 192-202? Est-ce que l'une de ces lignes la cause de votre événement keydown à un travail d'arrêt? P> -PaulH p> Modifier strong> p> Le imageControl et decodeControl à la fois accepter un Essayez ceci: seulement avoir un de ces instancié à un moment en fonction de ce que vous êtes sur l'onglet. Débarrassez-vous du code de gestion Sinon, vous pouvez toujours tuer votre AllKeys (true); code>. Cela devrait vous assurer que votre application capture toute la presse du clavier.
TriggerKey code> paramètre. . Cela sonne comme ils attendent à faire l'événement se keypress la manipulation p>
Form1_KeyDown code> tous ensemble (y compris les AllKeys). Voir si cela fonctionne. P>
Form1_KeyDown code> gestionnaire, mais garder les deux contrôles comme ils sont et faire dans votre
tabControl1_SelectedIndexChanged code> gestionnaire à la place. p>
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.tabControl1.SelectedIndex == 0)
{
this.decodeControl1.TriggerKey = HHP.DataCollection.Common.TriggerKeyEnum.TK_ONSCAN;
this.imageControl1.TriggerKey = null;
}
else if (this.tabControl1.SelectedIndex == 1)
{
this.decodeControl1.TriggerKey = null;
this.imageControl1.TriggerKey = TriggerKeyEnum.TK_ONSCAN;
}
}
Je m'excuse d'avance pour mon manque d'expérience, mais comment utiliser la signature P / invoke ou comment puis-je autoriser mon application à la fonction Allkeys?
Je ne sais pas pourquoi vous voudriez m'excuser pour cela. Ceci est un forum d'aide au développeur, après tout. MSDN a un didacticiel sur les API Win32 à partir du code géré (p / invoke) ici: msdn.microsoft.com/en-us/magazine/cc164123.aspx
Eh bien, cela a certainement obtenu ma candidature en capturant l'événement clé! Cependant, mon problème est incliné dans l'autre direction maintenant. L'événement de clé à manquement a la priorité sur le décodévent. Cela ne constitue pas un problème, sauf que l'événement du porte-clés nécessite que les evenargs soient de type KeyEventargs pour l'appeler et le décodévent nécessite le deuxième paramètre de type décodéventargs que je ne peux pas être jeté de Keeventargs. Cela signifie que je ne peux pas déléguer la tâche de décodage car je ne peux pas appeler correctement ma fonction de gestionnaire décodéent (ligne 148). Idées?
Bien que les deux contrôles acceptent une triggerkey, seul le contrôle du décodage effectue réellement sa propre manipulation d'événements / clés. Le contrôle de l'image, basé sur la documentation et les programmes d'échantillons, nécessite que le consommateur soit un gestionnaire d'événements de clé. De plus, si je définissais TriggerKey sur autre chose que tk_onscan ou tk_enter, la commande (contrôle de décodage) ne souscrit pas à un enregistrement de la touche de raccourci et que l'application se bloque en disant "raccourci clavier non non enregistré". Il y a même un tk_none dans l'énumérateur de TriggerKey et qui échoue avec la même erreur. Le contrôle n'est pas codé correctement pour accepter ce type de comportement apparemment.
J'ai trouvé que si je changez la triggerkey en TK_Enter (une autre valeur dans la TRGERKey Enum), je peux interagir avec le contrôle de l'image sans aucun problème. Maintenant, j'ai juste besoin de trouver un moyen de capturer cette touche Entrée, appuyez sur pour le garder de quelque chose de bizarre. P>
Merci pour toute l'aide! P>