Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2011, 22:41   #11
volod3000
Форумчанин
 
Аватар для volod3000
 
Регистрация: 18.12.2008
Сообщений: 266
По умолчанию

Можете попробовать решить эту проблему с помощью таймеров, коряво , но
работает.
Вложения
Тип файла: rar PS.rar (84.9 Кб, 6 просмотров)

Мало открыть человеку глаза, большинство еще просит указать дорогу и ждет волшебного пенделя.
volod3000 вне форума Ответить с цитированием
Старый 09.06.2011, 23:17   #12
volod3000
Форумчанин
 
Аватар для volod3000
 
Регистрация: 18.12.2008
Сообщений: 266
По умолчанию

Вот решение проблемы, корректное :

Код:

    procedure FormCreate(Sender: TObject);
  private
    hwndNextViewer: THandle;
    procedure WMChangeCbChain(var Message: TWMChangeCBChain); message WM_CHANGECBCHAIN;
    procedure WMDrawClipboard(var Message: TMessage); message WM_DRAWCLIPBOARD;
....................................................
................................
..............................

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

 keybd_event(VK_SNAPSHOT, 0, 0, 0);
 keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0);

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  hwndNextViewer := SetClipboardViewer(Handle);
end;

procedure TForm1.WMChangeCbChain(var Message: TWMChangeCBChain);
begin
  with Message do
begin
  if Remove = hwndNextViewer then
     hwndNextViewer := Next
  else
   if hwndNextViewer <> 0 then
     SendMessage(hwndNextViewer, Msg, Remove, Next);
 end;
end;

procedure TForm1.WMDrawClipboard(var Message: TMessage);
begin
if IsClipboardFormatAvailable(CF_BITMAP) then 
begin 
   Image1.Picture.Assign(Clipboard);
   Image1.Picture.SaveToFile(ExtractFilePath(Application.ExeName) + 'temp.bmp');
end;

end;
Здесь все просто , буфер обмена имеет не одну запись , и нам
надо отловить изменения в записях буфера обмена и вытащить необходимую, в данном случае последнею .

Мало открыть человеку глаза, большинство еще просит указать дорогу и ждет волшебного пенделя.
volod3000 вне форума Ответить с цитированием
Старый 11.03.2012, 22:40   #13
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Удалено пользователем

Последний раз редактировалось Shouldercannon; 11.03.2012 в 22:45.
Shouldercannon вне форума Ответить с цитированием
Старый 14.03.2012, 21:38   #14
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Данный способ не работает при заблокированной системе.
Shouldercannon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранить картинку из буфера обмена. Silly Student C++ Builder 3 17.05.2011 12:52
Как сохранить HTML в изображение? GroZa Общие вопросы Delphi 1 30.01.2011 15:46
EmbeddedWB - сохранить изображение не перезагружая zver777 Работа с сетью в Delphi 11 26.06.2010 08:05
Сохранить изображение в таблицу Steil Общие вопросы Delphi 1 25.05.2010 10:36
Сохранить/считать изображение в/из файл(а). amdbodia Общие вопросы C/C++ 4 26.05.2009 20:05