Hey, I would like to know if it is at all possible to try and completely override the normal microsoft keyboard input function... As in...

I would like to create a C/C++ program which, when run, will change certain keys to others...

Example:

User inputs 'A' ( On any random application or process he has running )
My program changes 'A' to 'B'
Microsoft inserts 'B' to wherever 'A' would have been placed

If anyone already knows of an application that already does this and is very simple/easy, I have no problem with using an already made one... But, I would not mind working/learning to try and code this puppy...

For your information, this is not for any type of virus/keylogger... The reason I would like it is because I use a Dvorak keyboard...

Because dvorak isn't popular, I would have to switch a windows option which most computers ( like the one at my college ) don't let me do... So, I would like to make a simple application to just intercept these keys and change them to whatever the one for dvorak needs to be...

The programming is extremely simple from my perspective, the only problem I see is if Windows tries to have security on it or something... Which, I'm sure that it does but I'm hoping there is a way around it or something ><.

Any form of help is wanted!! I am honestly OK with having to learn assembly if I need to, but my desired result is not something that will change BIOS or cause any long-term effects, I would like it to only convert keys while my application is running and then nobody will even know once I turn off my app...

Thanks, fmwyso