أفضل طريقة للتعامل مع المدخلات من لوحة المفاتيح "إسفين"

StackOverflow https://stackoverflow.com/questions/42437

  •  09-06-2019
  •  | 
  •  

سؤال

أنا أكتب C# نقاط البيع (نقاط البيع) النظام التي تأخذ المدخلات من لوحة المفاتيح إسفين magcard القارئ.وهذا يعني أن أي بيانات يقرأ من ماج الشريط ودخلت كما لو كانت تكتب على لوحة المفاتيح بسرعة جدا.حاليا أنا أتعامل مع هذا طريق ربط الحدث KeyPress و تبحث عن سلسلة من سريع جدا ضغطات المفاتيح التي تحتوي على بطاقة ممغنطة الحارس الشخصيات.

هل هناك طريقة أفضل للتعامل مع هذا النوع من مدخلات ؟

تحرير:الجهاز لا مجرد تقديم البيانات ضغطات و لا واجهة من خلال بعض التشغيل الأخرى.ونحن أيضا استخدام مجموعة واسعة من هذه الأنواع من الأجهزة حتى من الناحية المثالية طريقة يجب أن تعمل مستقلة عن نموذج معين من إسفين المستخدمة.ومع ذلك إذا كان هناك أي خيار آخر يجب أن تجعل القيام به.

هل كانت مفيدة؟

المحلول

شيء واحد يمكنك القيام به هو أن عليك أن تكون قادرا على تكوين إسفين القارئ بحيث أنه يقدم واحدة أو عدة أحرف الهروب قبل أو بعد سلسلة.يمكنك استخدام هذه أحرف الهروب إلى معرفة أن كنت على وشك أن يكون (أو كان) على magcard الإدخال.

نفس هذا الأسلوب يستخدم من قبل قارئ الباركود الأجهزة بحيث يمكنك تطبيق يعرف للحصول على التركيز أو التعامل مع مدخلات البيانات من الجهاز.

السلبية لهذا النهج هو أن يكون لديك بشكل صحيح تكوين الأجهزة الخارجية.يمكن أن يكون هذا النشر المسألة.

هذا يفترض أن الأجهزة الخاصة بك ببساطة تقديم البيانات ضغطات و لا واجهة من خلال بعض التشغيل الأخرى.

نصائح أخرى

يمكنك أيضا استخدام المدخلات الخام API إذا كنت تعرف معرفات الأجهزة من الأجهزة في وقت مبكر. لقد كتبت عن ذلك مؤخرا. قد تكون جنونا ولكنها satisifed متطلباتي:الهدف الأساسي في حالتي أن تكون قادرة على الحصول على المدخلات حتى عند التطبيق فقدت التركيز لأن أحدهم صدم بطريق الخطأ في شيء حين يفتشون حول لمسح البنود على منصة نقالة.الثانوية الهدف هو أنني لم أستطع إضافة أي الحارس الشخصيات لأن ذلك قد كسر تطبيقات الطرف الثالث الحالية المستخدمة مع مسح الأسلحة.

لقد فعلت الحارس حرف الطريقة من قبل ، ومع ذلك ، سواء عن طريق KeyPress إرفاق أو انخفاض مستوى لوحة المفاتيح هوك عبر SetWindowsHookEx() أو عن طريق KeyPreview على التطبيق الخاص بك النموذج الرئيسي.إذا كان يلبي الاحتياجات الخاصة بك, انها بالتأكيد أبسط من ذلك بكثير وأسهل في استخدام هذه الطريقة إلى أن تنتهي أنا الثانية التوصيات التي قدمت بالفعل.

أعتقد أنك تتعامل مع الأمر بطريقة مقبولة ، فقط كن حذرا من مدى سرعة بطاقة يرسل البيانات لدينا لاسلكية الماسح الضوئي الباركود ، والآن مرة أخرى يرمون المفتاح ضربات على لوحة المفاتيح بسرعة لتطبيق التعامل معها.

أيضا إذا كنت توزيع البرنامج إلى أقاليم أخرى ، ثم مفتاح ستوكس قد تكون مختلفة ، على سبيل المثال في إسبانيا (أعتقد, ولكن قد تكون فرنسا) السطر العلوي من لوحة المفاتيح !"£$%^&() بدلا من الولايات المتحدة الأمريكية/المملكة المتحدة 1234567890, و إذا كان لديك قارئ بطاقة يتم تعيين إلى الولايات المتحدة الأمريكية/المملكة المتحدة بعد ذلك سوف نرسل !"£$%^&() في مكان 1234567890 ، إسفين فقط يحاكي هذا المفتاح تم الضغط وإذا ويندوز يفسر مختلفة ثم المشكلة الخاصة بك.

آخر التصويت jttraino فكرة.أفعل الشيء نفسه مع بطاقة القراء الشيكات القراء في نقطة البيع حيث نظم نحن بحاجة إلى دعم لوحة المفاتيح إسفين وكذلك USB RS232.

أساسا ، واختيار قصيرة تسلسل من الأحرف غير المرجح أن تأتي من لوحة المفاتيح, برنامج رسالتك التعامل مع حلقة أن نرى هذه الشخصيات وصوله.إذا كنت تحصل على الانتهاء تيار من الشخصيات التي تتطابق مع النمط الخاص بك ، يمكنك فك بقية المدخلات الخاصة بك حتى تصل معين 'نهاية' تسلسل أو حتى تقرر واردة التسلسل في الخطأ.حدد سلسلة إما أن يكون من الصعب أو من المستحيل إدخال من لوحة المفاتيح إلى التطبيق الخاص بك نظرا أشياء مثل تحرير الأقنعة و سلوك مختلف الشاشات.

نقطة انطلاق جيدة هو شيء مثل تيلدا-بلينغ (~!) مثل تلك الشخصيات ليس من المرجح أن تظهر في أي تفاصيل شخصية وليس من المرجح أن تحتاج من أي وقت مضى أن تظهر معا في نص المذكرة ، إلخ.:-)

الجانب السلبي ، بالضبط كما jttraino قال: هو أنه سيكون لديك على الارجح الى تكوين/برنامج لكل قارئ الجهاز نفسه.بعض الشركات المصنعة جعل هذا من السهل القيام به - الذي طقم تستخدمه ؟ Magtek?Welch Allyn?

أنا الثاني @jttraino فكرة.

بل هو وسيلة للذهاب شريط المسح الضوئي/رمز القراء وغيرها من أجهزة التوصيل والتشغيل (PnP).لقد استخدمت نفس الأسلوب إلى تكوين زوجين من 1D و 2D الباركود الماسحات الضوئية في السابق مهمة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top