Получение текста из буфера обмена без использования модуля Clipbrd
Falk0ner, вс, 06/07/2008 - 15:34.
Получение текста из буфера обмена без использования модуля Clipbrd
{ **** UBPFD *********** by kladovka.net.ru ****
>>
Wnd - Handle окна, получающего доступ к буферу обмена;
Str - строка, в которую будет скопирован текст;
Зависимости: Windows
Автор: Dimka Maslov, <a href="mailto:mainbox@endimus.ru">mainbox@endimus.ru</a>, ICQ:148442121, Санкт-Петербург
Copyright: Dimka Maslov
Дата: 22 августа 2002 г.
********************************************** }
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;
>>
Wnd - Handle окна, получающего доступ к буферу обмена;
Str - строка, в которую будет скопирован текст;
Зависимости: Windows
Автор: Dimka Maslov, <a href="mailto:mainbox@endimus.ru">mainbox@endimus.ru</a>, ICQ:148442121, Санкт-Петербург
Copyright: Dimka Maslov
Дата: 22 августа 2002 г.
********************************************** }
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;
Пример использования:
function TForm1.Button2Click(Sender: TObject)
var
Str: string;
begin
GetClipboardText(Handle, Str);
ShowMessage(Str);
end;
var
Str: string;
begin
GetClipboardText(Handle, Str);
ShowMessage(Str);
end;
Отправить комментарий