That is software emulation though, which is restricted by various things (can't type across users (so breaks on Run As, and elevated windows), if a window implements a custom control, it won't work with that either since that window likely reads from the keyboard in a weird or wonderful way, some windows also just avoid any windows messaging and read the keyboard directly)
Hardware faking of the keyboard would work fine though