Как программно переключать раскладку клавиатуры?

ActiveX, .NET, DLL
Ответить
Аватара пользователя
Chupakabra

Tutorials
professional
professional
Сообщения: 360
Зарегистрирован: 21 янв 2009, 10:50
Награды: 1
Версия LabVIEW: 2015
Откуда: Москва
Поблагодарили: 4 раза
Контактная информация:

Как программно переключать раскладку клавиатуры?

Сообщение Chupakabra »

Доброго времени суток.
Наступил тут на грабли одни.
Есть небезизвестный модуль для генерации отчетов (report toolkit for ms office). В нем есть vi для построения графиков в теле документа excel. Оказывается этот vi вставляет точки для отображения в графике через буфер обмена. НО! Оказывается в Windows, то что вставляется и извлекается в буфер обмена очень зависит от текущей раскладки клавиатуры. Так вот когда раскладка EN до в excel-е появляются крякозябры. А вот если перед генерацией отчета переключить раскладу на RU, то вставляется все как нужно.
Выяснилось, что это проблема Windows, которая существовала всегда. И единственный решением в моем случае будет заранее программно переключить раскладку.\
Так вот вопрос каким образом (WinAPI?) это сделать?
Dubovitsky

Автор
junior
junior
Сообщения: 52
Зарегистрирован: 21 дек 2010, 12:11
Награды: 1
Версия LabVIEW: 2011
Контактная информация:

Re: Как программно переключать раскладку клавиатуры?

Сообщение Dubovitsky »

Должно помочь LoadKeyboardLayout из user32.
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Банальный русский должен быть 00000419.
AlexRX
user
user
Сообщения: 76
Зарегистрирован: 26 июн 2011, 12:03
Версия LabVIEW: 2012
Контактная информация:

Re: Как программно переключать раскладку клавиатуры?

Сообщение AlexRX »

Chupakabra писал(а):Доброго времени суток.
Наступил тут на грабли одни.
Есть небезизвестный модуль для генерации отчетов (report toolkit for ms office). В нем есть vi для построения графиков в теле документа excel. Оказывается этот vi вставляет точки для отображения в графике через буфер обмена. НО! Оказывается в Windows, то что вставляется и извлекается в буфер обмена очень зависит от текущей раскладки клавиатуры. Так вот когда раскладка EN до в excel-е появляются крякозябры. А вот если перед генерацией отчета переключить раскладу на RU, то вставляется все как нужно.
Если я не ошибаюсь, то я выкручивался следующим образом... Правда была такая проблема с VI Excel Easy Table, а там по-умолчанию данные в текстовом виде на входе (хотя DBL тоже допускается). Выкрутился так: поставил перед входом "data" этого VI функцию конвертации числовых данных в сторку - Number To Fractional String Function, а у нее есть параметр "use system decimal point" (True - по умолчанию), соответственно мои DBL данные преобразовались в STR с правильным разделителем.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Коммуникация с приложениями»