Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.04.21;
Скачать: CL | DM;

Вниз

Как скопировать строку в буфер обмена и вставить ее в программу   Найти похожие ветки 

 
Вова   (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]

"&#25927;&#17268;&#26988;&#25200;&#24943;&#25714;&#25940;&#29816;"#$AB00#$ABAB#$ ABAB#$ABAB"&#65195;&#65262;&#65262;&#65262;&#65262;" или так


 
MBo ©   (2012-10-13 14:04) [2]

извлекай формат CF_UNICODETEXT

Кроме того, есть штатный модуль Clipbrd. Думаю, что в последних версих Дельфи AsText с юникодом должен работать (не проверял)



Страницы: 1 вся ветка

Текущий архив: 2013.04.21;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.006 c
15-1356163911
Экс
2012-12-22 12:11
2013.04.21
Хорошее знание языка


15-1356467402
Юрий
2012-12-26 00:30
2013.04.21
С днем рождения ! 26 декабря 2012 среда


2-1350119385
Вова
2012-10-13 13:09
2013.04.21
Как скопировать строку в буфер обмена и вставить ее в программу


15-1355289271
Andy BitOff
2012-12-12 09:14
2013.04.21
Ждем 12.12.12 12:12:12.12


15-1354293250
Rouse_
2012-11-30 20:34
2013.04.21
Ну чтож, добил таки цикл статей про отладку.