AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.11.2010, 17:50   #1  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
было похожее на форуме
Раскладка и Аксапта
Как переключить раскладку клавиатуры
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 11.11.2010, 17:55   #2  
GBH is offline
GBH
MCITP
Аватар для GBH
MCP
MCBMSS
Ex AND Project
 
140 / 28 (1) +++
Регистрация: 28.06.2007
Цитата:
Сообщение от lev Посмотреть сообщение

Спасибо за ответ!
Но вопрос в том как получить текущее значение раскладки, а не как переключить. Все эти темы я читал.

То что смог найти подходит, вроде, вот это

Функция GetKeyboardLayoutName извлекает данные о названии активной раскладки символов на клавиатуре
.......

Но вот как её использовать я пока не понял.
За это сообщение автора поблагодарили:  (-1).
Старый 11.11.2010, 18:13   #3  
samolalex is offline
samolalex
Участник
Аватар для samolalex
Самостоятельные клиенты AX
 
259 / 107 (4) +++++
Регистрация: 18.06.2010
Адрес: Москва
В общем-то вот, что получилось:
X++:
server static void getLanguage()
{
    dll dll = new dll("user32");
    dllFunction GetKeyboardLayout = new dllFunction(dll, "GetKeyboardLayout");
    #define.RU("68748313")
    #define.EN("67699721")
    ;

    GetKeyboardLayout.arg(ExtTypes::DWORD);
    GetKeyboardLayout.returns(ExtTypes::DWORD);

    if(value2string(GetKeyboardLayout.call(0)) == #RU)
    {
        info("RU");
    }
    else
    {
        info("EN");
    }
}
__________________
С уважением, Александр.

Последний раз редактировалось samolalex; 11.11.2010 в 18:17.
За это сообщение автора поблагодарили: GBH (1).
Старый 11.11.2010, 18:36   #4  
GBH is offline
GBH
MCITP
Аватар для GBH
MCP
MCBMSS
Ex AND Project
 
140 / 28 (1) +++
Регистрация: 28.06.2007
Цитата:
Сообщение от samolalex Посмотреть сообщение
В общем-то вот, что получилось:
X++:
server static void getLanguage()
{
    dll dll = new dll("user32");
    dllFunction GetKeyboardLayout = new dllFunction(dll, "GetKeyboardLayout");
    #define.RU("68748313")
    #define.EN("67699721")
    ;

    GetKeyboardLayout.arg(ExtTypes::DWORD);
    GetKeyboardLayout.returns(ExtTypes::DWORD);

    if(value2string(GetKeyboardLayout.call(0)) == #RU)
    {
        info("RU");
    }
    else
    {
        info("EN");
    }
}
Этот вариант получился полностью!

Всем огромное спасибо. Тему можно закрывать.

P.S. Только вместо value2string использовать надо int2str

Последний раз редактировалось GBH; 11.11.2010 в 18:41. Причина: Поправка
За это сообщение автора поблагодарили: zZ_TOP_Zz (1), kornix (3).
Старый 11.11.2010, 18:14   #5  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
получилось получить текущею раскладку в числовом виде, но никак не могу перевести его на читабельный вариант. может у вас получится
вот код:

X++:
    DLL             DLL;
    DLLFunction     DLLFunction;
    ;

    #WinAPI

    DLL = new DLL('user32.dll');
    DLLFunction = new DLLFunction(DLL,'GetKeyboardLayout');

    DLLFunction.arg(ExtTypes::DWord);
    DLLFunction.returns(ExtTypes::DWord);
                   
    info(DLLFunction.call(0));
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем

Последний раз редактировалось lev; 11.11.2010 в 18:16.
За это сообщение автора поблагодарили: GBH (1).
Старый 11.11.2010, 18:20   #6  
GBH is offline
GBH
MCITP
Аватар для GBH
MCP
MCBMSS
Ex AND Project
 
140 / 28 (1) +++
Регистрация: 28.06.2007
Цитата:
Сообщение от lev Посмотреть сообщение
получилось получить текущею раскладку в числовом виде, но никак не могу перевести его на читабельный вариант. может у вас получится
вот код:

X++:
    DLL             DLL;
    DLLFunction     DLLFunction;
    ;

    #WinAPI

    DLL = new DLL('user32.dll');
    DLLFunction = new DLLFunction(DLL,'GetKeyboardLayout');

    DLLFunction.arg(ExtTypes::DWord);
    DLLFunction.returns(ExtTypes::DWord);
                   
    info(DLLFunction.call(0));
Огромное спасибо!
Сейчас буду думать дальше!
Теги
законченный пример, программно, раскладка клавиатуры

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Отсюда вопрос - где эффективнее всего использовать данное сжатие ? OLAP системы ? OLTP системы ? Logger DAX: Администрирование 6 17.08.2009 20:44
Каков процент внедрений "стандартной" поставки системы Аксапта? coolibin DAX: Прочие вопросы 17 10.02.2009 12:45
Текущий пользователь и язык alpine DAX: Программирование 2 03.06.2003 15:42
Проблемы с производительностью системы MIkeFW DAX: Прочие вопросы 16 25.06.2002 20:29
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:34.