Solved

keyboard wedge input problem via Citrix client v6.20.985

Posted on 2007-11-28
5
1,338 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

Control application downtime with dependency maps

Visualize the interdependencies between application components better with Applications Manager's automated application discovery and dependency mapping feature. Resolve performance issues faster by quickly isolating problematic components.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Citrix XenDesktop 7.6 Citrix Policies Audio
If your vDisk VHD file gets deleted from the image store accidentally or on purpose, you won't be able to remove the vDisk from the PVS console. There is a known workaround that is solid.
The goal of the tutorial is to teach the user how to use functions in C++. The video will cover how to define functions, how to call functions and how to create functions prototypes. Microsoft Visual C++ 2010 Express will be used as a text editor an…
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.

914 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

23 Experts available now in Live!

Get 1:1 Help Now