| 1006 | } |
| 1007 | |
| 1008 | KeyInfo InputManager::GetKeyInfo(HWND window_handle, wchar_t character) { |
| 1009 | KeyInfo key_info; |
| 1010 | key_info.is_ignored_key = false; |
| 1011 | key_info.is_extended_key = false; |
| 1012 | key_info.is_webdriver_key = true; |
| 1013 | key_info.is_force_scan_code = false; |
| 1014 | key_info.key_code = 0; |
| 1015 | key_info.scan_code = 0; |
| 1016 | key_info.character = character; |
| 1017 | DWORD process_id = 0; |
| 1018 | DWORD thread_id = ::GetWindowThreadProcessId(window_handle, &process_id); |
| 1019 | HKL layout = ::GetKeyboardLayout(thread_id); |
| 1020 | if (character == WD_KEY_CANCEL) { // ^break |
| 1021 | key_info.key_code = VK_CANCEL; |
| 1022 | key_info.scan_code = VK_CANCEL; |
| 1023 | key_info.is_extended_key = true; |
| 1024 | } |
| 1025 | else if (character == WD_KEY_HELP) { // help |
| 1026 | key_info.key_code = VK_HELP; |
| 1027 | key_info.scan_code = VK_HELP; |
| 1028 | } |
| 1029 | else if (character == WD_KEY_BACKSPACE) { // back space |
| 1030 | key_info.key_code = VK_BACK; |
| 1031 | key_info.scan_code = VK_BACK; |
| 1032 | } |
| 1033 | else if (character == WD_KEY_TAB) { // tab |
| 1034 | key_info.key_code = VK_TAB; |
| 1035 | key_info.scan_code = VK_TAB; |
| 1036 | } |
| 1037 | else if (character == WD_KEY_CLEAR) { // clear |
| 1038 | key_info.key_code = VK_CLEAR; |
| 1039 | key_info.scan_code = VK_CLEAR; |
| 1040 | } |
| 1041 | else if (character == WD_KEY_RETURN) { // return |
| 1042 | key_info.key_code = VK_RETURN; |
| 1043 | key_info.scan_code = VK_RETURN; |
| 1044 | } |
| 1045 | else if (character == WD_KEY_ENTER) { // enter |
| 1046 | key_info.key_code = VK_RETURN; |
| 1047 | key_info.scan_code = VK_RETURN; |
| 1048 | key_info.is_extended_key = true; |
| 1049 | } |
| 1050 | else if (character == WD_KEY_PAUSE) { // pause |
| 1051 | key_info.key_code = VK_PAUSE; |
| 1052 | key_info.scan_code = VK_PAUSE; |
| 1053 | key_info.is_extended_key = true; |
| 1054 | } |
| 1055 | else if (character == WD_KEY_ESCAPE) { // escape |
| 1056 | key_info.key_code = VK_ESCAPE; |
| 1057 | key_info.scan_code = VK_ESCAPE; |
| 1058 | } |
| 1059 | else if (character == WD_KEY_SPACE) { // space |
| 1060 | key_info.key_code = VK_SPACE; |
| 1061 | key_info.scan_code = VK_SPACE; |
| 1062 | } |
| 1063 | else if (character == WD_KEY_PAGEUP) { // page up |
| 1064 | key_info.key_code = VK_PRIOR; |
| 1065 | key_info.scan_code = VK_PRIOR; |