Страница 2 из 2

Setclipboard и кириллица.

Добавлено: 13 Август 2015, 12:50
VWV
Вот и я столкнулся с абракадабрами в буфере обмена (Clarion 5.5.ШВС).
Прошу, покажите, как принудительно переключить раскладку из приложения.
Спасибо

Setclipboard и кириллица.

Добавлено: 13 Август 2015, 14:00
Admin

Setclipboard и кириллица.

Добавлено: 13 Август 2015, 14:19
kreator
Надеюсь, полный набор.

Код: Выделить всё

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
Всё прописывается в Global Embeds. Точки вставки определить просто.

Вызов функции:

Код: Выделить всё

i# = GetKeyboardLayoutNameA(LOC:Language)
if LOC:Language=Latin
  SwitchKBD(Russian)  
end    
SETCLIPBOARD(TEKST)
if LOC:Language=Latin
  SwitchKBD(Latin)  
end

Setclipboard и кириллица.

Добавлено: 13 Август 2015, 15:21
VWV
Спасибо большое за помощь!