Вот и я столкнулся с абракадабрами в буфере обмена (Clarion 5.5.ШВС). 
Прошу, покажите, как принудительно переключить раскладку из приложения.
Спасибо
			
			
									
						Setclipboard и кириллица.
Модератор: Дед Пахом
					Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
	При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Admin
 - Администратор
 - Сообщения: 4022
 - Зарегистрирован: 05 Июль 2005, 15:59
 - Откуда: Хабаровск
 - Благодарил (а): 59 раз
 - Поблагодарили: 42 раза
 - Контактная информация:
 
- 
				kreator
 - ✯ Ветеран ✯
 - Сообщения: 5235
 - Зарегистрирован: 28 Май 2009, 15:54
 - Откуда: Москва
 - Благодарил (а): 11 раз
 - Поблагодарили: 26 раз
 
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.   
			
						