Remember that SHIFT is not, by itself, a stand-alone Character and will not generate its own ASCII value. Neither is CRTL.
These 'control characters' act upon a 'real' Character by causing the Keyboard to send a Different ASCII value when you hit the 'B' key.
Consequently you cannot separately generate a SHIFT or CTRL barcode.
Instead the barcode you generate when you COMBINE (not sequential) SHIFT and/or CTRL with another key is some variation of the 'real' key's barcode representation which in turn will cause a specific ASCII value to be returned to the recipient device.
And, as you have proven already, the ASCII values sent by the following are the same
* SHIFT then CTRL and b (Lower case 'b' - resulting in Upper case 'B')
* CTRL then SHIFT and b (Lower case 'b' - resulting in Upper case 'B')
CTRL + "B" is the same as CTRL + 'b'
Only the following are different.
* CTRL and B (Upper case 'B')
* CTRL and b (Lower case 'b')
Also there is no such thing as a SHIFT then CRTL or vise versa.
They must be used CONCURRENTLY (at the same time) with a 'real' key to produce the intended results.
When the software vendor is telling you:
It seems that the program is waiting from SHIFT then CTRL and B.
that sounds to me like either they are 'blowing smoke' or someone doesn't know what they are talking about.
Software responds to the ASCII Input from a device.
I've developed software for over 35 years and I KNOW this.
If, as you have already proven, the ASCII values are all the same, then something else is going on that either:
* has not been properly explained by the software vendor
* and/or is being introduced by the VMWare path you are using.
Finally...
The strange thing is that with USB Keyboard the scanner give me "CTRL+SHIFT+B" and when i configure it in Wedge it gives me "SHIFT+CTRL+B".
As Seen/Displayed By What or Where?
Since from an ASCII perspective they are EXACTLY THE SAME (1 single ASCII character), who cares?
It is just how the recipient device is notifying you (displaying to you) about what it received.
I could write code to "interpret" an ASCII 0x02 and display it as "SHIFT+CTRL+b" or "CTRL+SHIFT+b" or "CTRL+B" or "CTRL+b" - they all represent only the one same single ASCII 'Character'
How my 'interpretation' code writes out the display to a user is at the developer's discretion.
And displaying the ASCII character as what appears to be 3 separate things (SHIFT, CRTL, 'B') is only for Human reading only, a software application won't care.
Good Luck,
JRB-Bldr