public static void Main(string[] args) { string testChars = "Aéש"; Keys key; foreach (var culture in (new string[] { "he-IL", "en-US", "en-IE" }).Select(code => CultureInfo.GetCultureInfo(code))) { Console.WriteLine(culture.Name); using (var keyboard = new KeyboardPointer(culture)) foreach (char test in testChars) { Console.Write(test); Console.Write('\t'); if (keyboard.GetKey(test, out key)) { Console.WriteLine(DescribeKey(key)); } else { Console.WriteLine("No Key"); } } } Console.Read();//Stop window closing }
public static uint SendMessage(string message) { List <Input> list = new List <Input>(); using (var keyboard = new KeyboardPointer(CultureInfo.CurrentCulture)) { foreach (var c in message) { var vkc = (uint)keyboard.GetVirtualKeyValue(c); var sc = MapVirtualKey(vkc, 0x00); Input msg = new Input(); msg.Type = InputType.Keyboard; msg.Data.Keyboard.dwFlags = KeyEventFlags.ScanCode; msg.Data.Keyboard.wScan = (ScanCode)sc; list.Add(msg); } } //if (list.Count > 0) //{ // Input enter = new Input(); // enter.Type = InputType.Keyboard; // enter.Data.Keyboard.dwFlags = KeyEventFlags.Unicode; // enter.Data.Keyboard.wVk = VirtualKeyCode.RETURN; // enter.Data.Keyboard.time = 0; // list.Add(enter); //} return(SendInput(list.Count, list.ToArray(), Input.Size)); }