получить расскладку консольных окон

Тема в разделе "WASM.WIN32", создана пользователем rain, 19 окт 2007.

  1. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    Вообщем пример простейшей проги чекающей текущую раскладку активного онкна ниже. Только одна проблема это не работает для консольных окон.
    Код (Text):
    1.     do{
    2.         Sleep(1000/2);
    3.  
    4.         hwndForeground = GetForegroundWindow();
    5.         if (!hwndForeground) continue;
    6.         wsprintf(str, "\nforegournd window \t= 0x%4X\n", hwndForeground);
    7.         print(str); //вывод на консоль
    8.  
    9.         threadId = GetWindowThreadProcessId(hwndForeground, 0);
    10.         if (!threadId) continue;
    11.         wsprintf(str, "thread is \t\t= 0x%04X\n", threadId);
    12.         print(str);
    13.  
    14.         layout = GetKeyboardLayout(threadId);
    15.         if (!layout) continue;
    16.         wsprintf(str, "layout \t\t\t= 0x%04X\n", layout);
    17.         print(str);
    18.  
    19.         if (GetWindowText(hwndForeground, str, 0x100))
    20.         {
    21.             print("window text \t\t= ");    print(str);print("\n");
    22.         }
    23.        
    24.     }while(TRUE);
     
  2. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    http://groups.google.com/group/microsoft.public.win32.programmer.ui/browse_thread/thread/e8d796051ccb8181/851c2ad40a6d6021?lnk=st&q=GetKeyboardLayout+console#851c2ad40a6d6021 ???
     
  3. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    ссылки это канечно хорошо только вот готового рабочего и проверенного решения там нет, есть только не совсем чёткие пояснения некой\некого Kellie.
    Пробовал создавать гуевое приложение в котором создавал конслоль и делал теже манипуляции только тред получал через GetGUIThreadInfo. Результаты такие - поток один на оба окна, но если переключать расскладку в онке косоли это никоим образом не отразится на расскладке гуи окна при переключении окон, а вот если переключить раскладку в гуи окне она автоматом переключится в консоли, преидущее значение вообще не сохраняется.
    Смотрел всякие пунтосвичеры и кейборд ниндзи -- это какой-то ужас, пик корявостей программирования, мало того что без инжектов они не нобходятся так ещё и меняют свою иконку в трее раз через 2 неправильно.
    Короче фиг с ним вы часто например в консоли вбиваете отличные от инглиша символы?