Вот и я столкнулся с абракадабрами в буфере обмена (Clarion 5.5.ШВС).
Прошу, покажите, как принудительно переключить раскладку из приложения.
Спасибо
Setclipboard и кириллица.
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Admin
- Администратор
- Сообщения: 3960
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 25 раз
- Поблагодарили: 22 раза
- Контактная информация:
-
- ✯ Ветеран ✯
- Сообщения: 4984
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Setclipboard и кириллица.
Надеюсь, полный набор.
Всё прописывается в Global Embeds. Точки вставки определить просто.
Вызов функции:
Код: Выделить всё
LPCSTR EQUATE(CSTRING)
LPSTR EQUATE(CSTRING)
HKL EQUATE(UNSIGNED)
HWND EQUATE(UNSIGNED)
HINSTANCE EQUATE(UNSIGNED)
Latin CSTRING('00000409')
Russian CSTRING('00000419')
SwitchKBD(String KBDLayout)
MODULE('WINAPI')
GetKeyboardLayoutList(SIGNED,*HKL),SIGNED,pascal,raw
ActivateKeyboardLayout(HKL,UNSIGNED),HKL,pascal
GetKeyboardLayoutName(*LPSTR),BOOL,pascal,raw,NAME('GetKeyboardLayoutName')
GetKeyboardLayout(DWORD),HKL,pascal
GetKeyboardLayoutNameA(*LPSTR),BOOL,pascal,raw
END
SwitchKBD Procedure (KBDLayout)
AKL HKL
TMP CSTRING(20)
loc:i Long
Code
loc:i = GetKeyboardLayoutNameA(Tmp)
if Tmp<>KBDLayout
AKL = ActivateKeyBoardLayout(1,0)
end
Вызов функции:
Код: Выделить всё
i# = GetKeyboardLayoutNameA(LOC:Language)
if LOC:Language=Latin
SwitchKBD(Russian)
end
SETCLIPBOARD(TEKST)
if LOC:Language=Latin
SwitchKBD(Latin)
end
We are hard at work… for you.