Антохин
Дата: 19.05.2011 14:26:47
Есть некий "русский текст", его необходимо правильно скопировать в буфер обмена, независимо от раскладки клавиатуры.
Как это можно реализовать???
стандартным
...
Clipboard.asText:=russian_text;
...
не получается.
нужно что-то делать с локалями или раскладкой...
a_titeev
Дата: 19.05.2011 14:37:22
Антохин,
раньше, использовал такой вод код когда-то... сейчас не знаю, надо ли это, но в принципе будет работать
[source delphi]
var
..
pch, pch1: PChar;
..
case uMsg of
WM_COPY:
...
// Переключаем клавиатуру " в русский режим" , иначе - проблемы с кодировкой
getmem(pch, 100);
getmem(pch1, 100);
getkeyboardlayoutname(pch);
strcopy(pch1, pch);
while pch <> '00000419' do
begin
activatekeyboardlayout(hkl_next, 0);
getkeyboardlayoutname(pch);
if strcomp(pch, pch1) = 0 then
// Круг замкнулся - нет такого языка '00000419'
strcopy(pch, '00000419');
end;
// Данные - в буфер!!!
Clipboard.AsText := 'блаблабла';
while strcomp(pch, pch1) <> 0 do
begin // Возвращаем режим клавиатуры
activatekeyboardlayout(hkl_next, 0);
getkeyboardlayoutname(pch);
end;
freemem(pch);
freemem(pch1)
...
[/source]