Solved

keyboard wedge input problem via Citrix client v6.20.985

Posted on 2007-11-28
5
1,332 Views
Last Modified: 2008-05-17
I work for a software company that developed a biometric solution that allows customers to integrate biometric identification into any software package (by matching the fingerprint to a unique user id number).   It acts as a keyboard wedge, so essentially, if someone places their finger on the biometric device and a match is found, that person's user id will be entered into the field.  

We have a potential customer that uses an application hosted through a Citrix client (v6.20.984).  If the keyboard is used to type in the number, everything works fine ... the number appears in the application as it should.  If the user places their finger on the biometric reader, and a match is found, nothing happens.  Our application shows that they identified successfully, but the id never gets passed through Citrix to the application.   To keep our system completely independent from any application it may be used with, we just fill the keyboard buffer.  I attached a snippet below demonstrating how we're going about this.  Keep in mind, we do our development using Borland C++ .... hopefully the snippet will make sense though to those that don't live in Borland land.

Does anybody have ANY idea why the Citrix client is looking at the data from the keyboard buffer differently when entered via the keyboard versus our software which just simulates each keystroke through code?!?!?
keyed_event(keychar, 0, 0, 0);                   //key down

keyed_event(keychar, 0, KEYEVENTF_KEYUP, 0);     //key up

Open in new window

0
Comment
Question by:trs28
  • 3
  • 2
5 Comments
 
LVL 29

Expert Comment

by:matrixnz
ID: 20379626
Hi trs28

Not a guru in this department, however our staff capture a lot of data from balances using keyboard wedge software via com ports, I'm going to assume yours is similar, now I asked the vendor if we could run it on our Terminal Servers, his reply was, yes you can however he instructed us that we must map the com ports on the dumb terminals or computers to virtual com ports on the server.  We did and it worked fine

Hope that information helps.

Cheers
0
 

Author Comment

by:trs28
ID: 20382108
I appreciate the post martixnz  ... however, if it were a problem with terminal services, i wouldn't have had that issue licked in minutes ... i do not have any experience with the Citrix client.  The real exciting part is that Citrix provides no support for this particular client whatsoever.  

Thanks for the idea anyway though!

- Travis
0
 
LVL 29

Expert Comment

by:matrixnz
ID: 20385294
Hi Travis

The Citrix Client is basically RDP except with more options, so if you can get it going with Terminal Server than Citrix should work also , is the biometric device a serial device or PS2, USB..

Cheers
0
 

Author Comment

by:trs28
ID: 20385576
Well, to be honest with you, I'm limited with the Citrix side of the problem being that it's part of the client's system, and unfortunately, they contract in all of their IT work.  That, along with the fact that I've got very limited exposure with Citrix at all, leads me to believe that changing options within the Citrix client would not be in my best interest.  

I've just done a bunch of testing with a USB over Ethernet redirector though and that may be a suitable solution.   Though, it does raise other issues with identification from multiple biometric devices with how the software is currently designed, so I'd much rather figure out why our software's code initiated keystrokes aren't seen the same as if a user is physically pressing the keys on the keyboard.

These are USB biometric devices (as I'm sure you've already picked up on above).   I may take a look at your idea though ... just to see how straight forward might or might not be.

Thanks!
0
 

Accepted Solution

by:
trs28 earned 0 total points
ID: 21533101
I have since been in contact with Citrix certified engineers .... rather than looking for values from the keyboard buffer, the citrix client actually watches the PS/2 port at the hardware level.   That ended up being my problem.
0

Featured Post

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

#CITRIX #XENDESKTOP #POC #Citrix Studio
Basic understanding on "OO- Object Orientation" is needed for designing a logical solution to solve a problem. Basic OOAD is a prerequisite for a coder to ensure that they follow the basic design of OO. This would help developers to understand the b…
The viewer will learn how to user default arguments when defining functions. This method of defining functions will be contrasted with the non-default-argument of defining functions.
The viewer will be introduced to the member functions push_back and pop_back of the vector class. The video will teach the difference between the two as well as how to use each one along with its functionality.

746 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now