You can send Unicode characters with KEYEVENTF_UNICODE.
k.type = (int)InputType.INPUT_KEYBOARD;
k.ki.wScan = 'ö';
k.ki.wVk = 0;
k.ki.dwFlags = (int)KEYEVENTF.UNICODE | (int)KEYEVENTF.KEYDOWN;
k.ki.dwExtraInfo = GetMessageExtraInfo();
This is more portable than your solution using Oem3et al, whose assigned symbol will differ depending on the culture of the platform on which your application is running.
(The remaining P / Invoke entries can be found in another answer.)
source
share