MCA SDK Button Simulation

MCA SDK Button Simulation

Steven Murray (Intel)'s picture

When using the MCA SDK for development on your PC, it is likely that is does not have peripheral control buttons. The MCA SDK provides a way to simulate button presses and is already preconfigured for button simulation. When the MCA SDK ToolTray application is configured for button simulation, the keystrokes in the following list will, by default, simulate button keystrokes for the associated peripherals:

Shift-F1 = ButtonTypeBarcode
Shift-F2 = ButtonTypeRfid
Shift-F3 = ButtonTypePicture
Shift-F4 = ButtonTypeMedAppA
Shift-F5 = ButtonTypeMedAppB

For example, pressing Shift-F1 will simulate pressing the barcode reader button when the ToolTray application is running. See the MCA Developers Guide for more detail.

Note that if your application is running on an OEM's MCA product like the Motion C5, button simulation is unnecessary because you can use the physical buttons.

8 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

I noticed that keystrokes will come back in ALL UPPERCASE. This is because I am still holding down the SHIFT key as part of teh Shift-F5 etc.

for my application i'd like to emulate pressing of the hardware buttons, similiar to the "Tooltray" application.

I'd need some hint on how to accomplish that. Thanks.

Steven Murray (Intel)'s picture

Take a look at the MCA Developers Guide and the code samples in the MCA SDK software. You can download both fromhere:

thanks for your answer.

I (of course) downloaded and read the SDK before posting. Maybe i overlooked the obvious, but i didn't see any function that does what i need (i need to use the C interface). The source code for the tray tool may contain what i'm looking for, but that's not included in the SDK.

For clarification:
I do not want to register a callback that's called when someone presses one of the peripheral control buttons.

A simplified example of what i need to do:
Display a dialog on the screen with one button labeled "Read barcode". If the user clicks on that button, the system should react exactly as if he had pressed the physical barcode button on the device.


The only way to ensure compatability with other MCA (Medical Tablets) is to use the SDK provided. When the user pushes the button, reserve the barcode devices, execute and scan and then return the data to the appropriate form field.

Now, to make your application do what you have described, but have it work only on the Motion C5, you can look in the Control Panel -> Tablet and Pen settings -> and find the executable that is called when the associated button is pressed. Write your application to call that executable with the correct command line parameters. THIS IS AN UNSUPPORTED USE.

Again, this will only work on the Motion C5, it is highly recommended that you use the SDK for compatibility with other tablets. Other tablets will not have this specific work around and will not support this use.

thanks, i already implemented the solution you suggested.

I have to do it this way, cause my application is not the one that does the barcode reading etc. I only need to emulate the button presses like an on-screen keyboard emulates keypresses - without knowing what action this button press actually triggers.

The reason is that the locations of the rfid and barcode buttons on the Motion C5 make them pretty hard to use in "the real world". It'll be much easier (time efficient) if the actions can be triggered by pressing a button on the screen.

Steven Murray (Intel)'s picture

Hi mjx,

Here is something else you might want to look at on the Motion C5. There is a command option "mcbttnlnch.exe" located in sytem32

Usage: > mcbttnlnch.exe [-bc] [-rfid] [-cam]

The following switches are:

-bc =barcode

-rfid =RFID

-cam =camera

Note: These switches are available in Pen and Tablet Settings (Tablet Buttons tab) for each button.

I do not have any more info on it than shown above, but if it looks like it may work you could contact Motion for more details.


Login to leave a comment.