I have to write an on screen keyboard for our company's program, which is mostly used on industry's PCs with touch capability. We can't use the windows default keyboard because we don't need all keys on the keyboard. So I was asked to write a custom one in C#. I already found this blog as reference, but I'm not sure how to start. I created a small prototype GUI and assign for each key a scancode, and translate these scancodes to the related character. And send them to the active control. But I'm not sure what scancodes I should use. So my question is, is that the correct way to write a OSK