Архив исходников программ, модулей и компонентов на Delphi


Начальная страница

Поиск по базе



Операционная система
Настройка приложения
Взаимодействия приложений
Файлы и директории
Строки и символы
Математика
Базы данных
Интернет и сеть
Мультимедиа
Аппаратная часть
VCL
Другие разделы [0]
 

Количество записей в базе - 537
Сегодня добавлено – 0

Взаимодействие с ОС



Вернуться к списку функций
 Сохранение буфера обмена в файл

 Прислал: Lucifer ( 6 октября 2004 г. )
©  http://www.delphiworld.narod.ru/
 Описание:
Процедура позволяет сохранить содержимое буфера обмена в заданый файл.

Код процедуры был взят на сайте: http://www.delphiworld.narod.ru/
(http://www.delphiworld.narod.ru/base/clipbrd_to_file.html) адаптирован под мои нужды.

P.S. На всякий случай: я не претендую на авторство данного кода, я его просто привёл к виду, который мне больше подходил. В эту базу я его выложил исходя из предположения, что не каждый, кому понадобится такая процедура знает вышеуказанный адрес или обратится туда (сам долго искал иные способы).

 Зависимости:
стандартные модули

 Ограничения:
опробовал в Windows 98 Delphi 7

 Исходный текст:
{ **** UBPFD *********** by http://kladovka.net.ru/delphibase/ ****
>> Сохранение буфера обмена в файл

Процедура позволяет сохранить содержимое буфера обмена в заданый файл.

Код процедуры был взят на сайте: http://www.delphiworld.narod.ru/
(http://www.delphiworld.narod.ru/base/clipbrd_to_file.html) адаптирован под мои нужды.

P.S. На всякий случай: я не претендую на авторство данного кода, я его просто привёл к виду, который мне больше подходил. В эту базу я его выложил исходя из предположения, что не каждый, кому понадобится такая процедура знает вышеуказанный адрес или обратится туда (сам долго искал иные способы).

Зависимости: стандартные модули
Автор:       Lucifer, _lucifer_@ukr.net
Copyright:   http://www.delphiworld.narod.ru/
Дата:        6 октября 2004 г.
***************************************************************** }

procedure SaveFromClipBoardTo(FileName: string);
var
 CBFList: TList;
 i: Integer;
 h: THandle;
 p: Pointer;

 CBBlockLength,
 Temp,
 CBF: Cardinal;

 FS: TFileStream;
begin
 if OpenClipBoard(0) then begin
  CBFList := TList.Create;
  CBF := 0;
  repeat
   CBF := EnumClipboardFormats(CBF);
   if CBF <> 0 then CBFList.Add(pointer(CBF));
  until CBF = 0;

  if CBFList.Count > 0 then begin
   FS := TFileStream.Create(FileName, fmCreate);
   Temp := CBFList.Count;
   FS.Write(Temp, SizeOf(Integer));
   for i := 0 to CBFList.Count - 1 do begin
    h := GetClipboardData(Cardinal(CBFList[i]));
    if h > 0 then begin
     CBBlockLength := GlobalSize(h);
     if h > 0 then begin
      p := GlobalLock(h);
      if p <> nil then begin
       Temp := Cardinal(CBFList[i]);
       FS.Write(Temp, SizeOf(Cardinal));
       FS.Write(CBBlockLength, SizeOf(Cardinal));
       FS.Write(p^, CBBlockLength);
      end;
      GlobalUnlock(h);
     end;
    end;
   end;
   FS.Free;
  end;
  CBFList.Free;
  CloseClipBoard;
 end;
end;

 Пример использования:
SaveFromClipBoardTo('clipfile');


Вернуться к списку функций

Наверх ▲