Показать сообщение отдельно
Старый 31.07.2007, 12:39   #5  
e@gle is offline
e@gle
MCTS
MCBMSS
 
164 / 72 (3) ++++
Регистрация: 11.04.2005
Адрес: Минск
X++:
client static boolean setRUKeyboardLayout()
{
    #define.LANG_RUSSIAN("00000419")

    DLL         _winApiDLL      = new DLL('USER32');
    DLLFunction _loadKL         = new DLLFunction(_winApiDLL, "LoadKeyboardLayoutA");
    DLLFunction _activeKL       = new DLLFunction(_winApiDLL, "ActivateKeyboardLayout");
    Binary      bStr            = new Binary(10);
    ;

    bStr.string(#Offset0, #LANG_RUSSIAN);

    _loadKL.returns(ExtTypes::DWord);
    _loadKL.arg(ExtTypes::Pointer, ExtTypes::Word);

    _activeKL.returns(ExtTypes::DWord);
    _activeKL.arg(ExtTypes::DWord, ExtTypes::Word);

    if(_activeKL.call(_loadKL.call(bStr, 0), 0)) return true;
    else return false;

} // LoadKeyboardLayout
__________________
С уважением, Павел Цераниди.
На пути к совершенству нет конца. Каждое новое достижение является отправной точкой для следующего крупного шага.
За это сообщение автора поблагодарили: Logger (1).