I would like to ask for some help with firstly how to define the windows keys "Alt+Tab" and "Enter" key when using an online barcode generator like https://barcode.tec-it.com/en. Alternatively, if there isn't a way to define the keyboard commands, is there a place that I can find these commands in the form of Barcodes? Code-128 is preferred.
Thank you
Barcodes simply contain ASCII (or with more modern 2d symbols) UTF-8 character codes. So standard keyboard values such as Enter and Tab that correspond to ASCII values can be encoded in a barcode.
On the other hand, dedicated barcode scanners that attach via USB are essentially keyboard emulators. And those can be programmed to create Alt and Ctrl key sequences.
Unfortunately, I do not know of any scanner makers that support Alt-Tab. Most programmable scanners can create Alt-A ... Alt-Z but not Alt-Tab.
Additionally, most barcode scanners allow you to define prefix and suffix key codes to send when a barcode is scanned. The most common configuration is to send Enter or Tab after each scanned barcode. This is done by programming the scanner, not in the barcode.
Related
Thank you for taking the time to look at this question.
If you press the ‘y’ key on a keyboard, it is my understanding, that a UTF-8 keycode is sent over USB corresponding to the ‘y’ key. i.e. 0x79 in hex.
This is then interpreted by the computer as the letter ‘y’ and sent to the active window as a keystroke.
My question is, how come when you plug a US keyboard into a German computer, pressing the ‘y’ key results in the letter ‘z’ being sent to the active window.
Now on German keyboards, the letter ‘z’ is in the position which the ‘y’ key is in on a US keyboard. However, if each character has a unique UTF-8 code associated with it, surely pressing the ‘y’ key will generate the ‘y’ keycode (0x79) and this will be interpreted as a ‘y’ by the computer. Surely the location of that key on the keyboard shouldn't matter?
I assume there must be interconversion at some point to account for different layouts. How and at what point does this interconversion happen, is it done by the microcontroller in the keyboard or by the computer when it receives the keycode?
Please feel free to point out any wider misunderstandings in the above questions if they are present.
Many thanks for your time.
There are a couple of things your computer is aware of, first is your keyboard layout, which is usually asked about (in Ubuntu during installation for example) or detected automatically (like in Windows for example) by the default keyboard driver. The second is the system language, or preferred language, or keyboard language depending what its called in your Operating System.
When you plug in your English keyboard, the system recognizes it as an English keyboard and will look for your selected language and map the keys accordingly. I type in both English and Arabic, the keyboard layouts are totally different, and all I do is choose from the my keyboard icon in the taskbar that i want to type in Arabic now, the system still uses my English keyboard but with an Arabic keymap.
Hope this explains it!
For a project using a barcode scanner I need to know if it is possible to replace a special character like
!
"
§
$
%
=
with different keyboard strokes like
arrow down or arrow up or even shortcuts like
ctrl+a or ctrl+v?
Would be also possible if a specific series of characters resulted in a keystroke/keyboardshortcut,
for instance this text InsertArrowLeftHere would result in this keypress arrow left
Is there any way to make something like this work?
A bar-code scanner (unless is used with special hardware in-between) just reads the data, and sends keystrokes to the computer as keyboard interrupts. How the bar-code "string" is interpreted depends on software that, at that moment, has the focus. If you open a Notepad and read something with the barcode scanner, the number will be printed in notepad. In many cases no software comes with the scanner because there is no need for that.
But your software (the program that receives the data from the scanner) can catch anything typed in the textbox (or other control that has the focus, for example the whole form can catch the keystrokes). Maybe you can also identify where the keystrokes come from, (means: from which keyboard-input device: keyboard1, keyboard2, barcodescanner etc.) and act accordingly (if from keyboard1 or keyboard2 do nothing, if from barcodescanner then do this).
I'm developing a Universal App in c# for Windows 8.1
I'm trying to catch keyboard input and from the on-line literature have been pointed to KeyDown event and KeyRoutedEventArgs and the Key property. This works fine for most key characters and returns VirtualKey enumerations such as VirtualKey.A. However, when characters such as ,.;:> are pressed the Key property is set to a number and this number is the same value if the key is pressed in combination with VirtualKey.Shift which seems to indicate it is not representative of the characters on the key, but only represents the physical key.
As it happens, I'm using an Italian laptop keyboard which of course is laid out differently to a UK Extended keyboard so the Key value for a semicolon (;) is 186 on a UK keyboard (as an un-Shifted or bottom character) and is 188 on an Italian keyboard (as a Shift or top character). I'm therefore stumped as far a capturing these punctuation characters.
I have developed WPF, Silverlight and .Net app in the past and don't remember it being as difficult to handle physical keyboard input even in combination a game loop, as I just used the Key or Keys enumeration and an OEM value.
How can I capture these punctuation characters when their respective key is pressed, irrespective of the keyboard layout?
Answer provided by Hans Passant (https://stackoverflow.com/users/17034/hans-passant):
Characters typed on a physical keyboard are exposed by this event:
http://msdn.microsoft.com/en-us/library/windows.ui.core.corewindow.characterreceived.aspx
I have created some private characters using Windows Private Character Editor, but I want to be able to have the keyboard type my characters based on what I want the keys to type, but every program I find, it has no Private Character functionality... What do i do?
Without knowing your ultimate goal or restrictive parameters I can only give you a couple suggestions that come to mind but which may or may not be useful to you & your situation.
You could create a keyboard layout with the free Microsoft tool. It is able to access & assign private use characters. (Copy & paste the glyph from the Character Map to your custom key map.)
MS Keyboard Layout Tool
You could replace other characters/glyphs from another language which you do not use with your characters in a font making sure that the characters you replace are accessible through an already available keyboard.
Consider that, for a Windows video game, I need to determine if the key which generates the ` and ~ characters on the U.S. English keyboard layout (which is usually below the Escape key and left to 1) has been pressed. This may sound like a trivial question, but it doesn't seem like one to me.
When Windows sends keyboard messages, it specifies the virtual key code and the OEM scan code. We can't rely on the OEM scan code, because "the value depends on the OEM" - and nor can we depend on the virtual key code, because it depends on the currently active keyboard layout.
Our current "solution" is to use LoadKeyboardLayout and MapVirtualKeyEx to find the OEM scan code of the key that generates the ` character on the U.S. English keyboard layout, then just listen for that OEM scan code. The problem is that this doesn't work if the user doesn't have the U.S. English layout installed.
Is there a real way to do this on Windows?
The OEM scancode does not change from keyboard to keyboard. No reason not to use it.
Back in the DOS-days the same scancodes have been used for games because it has been the only way to detect key-up and key-down events. Noone had problems with it and I doubt it will change in the future.
If you want another option you may want to give DirectInput-API a try. It gives you the raw scancodes as well and if I'm not mistaken you can also query the physical position, dimension and whatnot of each key.
Tie the game action to the character, not the position of the key. Otherwise, how do you tell the user which key to press? "under the escape key"? They may not have anything there, but if you tell them "the ^ key", they can look for it.
You'll probably also want to make it configurable to accomodate exotic keyboard layouts and user preferences.