Форум: "Начинающим";
Текущий архив: 2013.04.21;
Скачать: [xml.tar.bz2];
ВнизКак скопировать строку в буфер обмена и вставить ее в программу Найти похожие ветки
← →
Вова (2012-10-13 13:09) [0]Нужно в сторонней программе выделить строку и вставить ее в буфер обмена. Это я делаю выделяя строку и эмулируя нажатие CTRL+C, обратная операция уже вручную (CTRL+V) дает текст который я и ожидал получить. Но, мне нужно вытащить из буфера этот текст программно, чтобы присвоить переменной в моей программе. Нашел такую вот процедуру:
function GetClipboardText(Wnd: HWND; var Str: string): boolean;
var
hData: HGlobal;
begin
result := true;
if OpenClipboard(Wnd) then
begin
try
hData := GetClipboardData(CF_TEXT);
if hData <> 0 then
begin
try
SetString(Str, PChAR(GlobalLock(hData)), GlobalSize(hData));
finally
GlobalUnlock(hData);
end;
end
else
result := false;
Str := PChAR(@Str[1]);
finally
CloseClipboard;
end;
end
else
result := false;
end;
Но вместо текста она возвращает кучу символов вопроса.
← →
Вова (2012-10-13 13:27) [1]"敇䍴楬扰慯摲敔瑸"#$AB00#$ABAB#$ ABAB#$ABAB"ﺫﻮﻮﻮﻮ" или так
← →
MBo © (2012-10-13 14:04) [2]извлекай формат CF_UNICODETEXT
Кроме того, есть штатный модуль Clipbrd. Думаю, что в последних версих Дельфи AsText с юникодом должен работать (не проверял)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.04.21;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.002 c