Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.01.2006, 18:50
DoSpyRap DoSpyRap вне форума
Прохожий
 
Регистрация: 02.01.2006
Сообщения: 1
Репутация: 10
Вопрос ПЕРИОДИЧЕСКИЙ СОХРАНЕНИЕ ЭКРАНА

Народ!!!!!!!! Подскажите, пожалуйста как мне сделать так, что бы при открытии моей cool-проги создавались автоматически скриншоты экрана с интервалом, например 20 сек и сохранялись в в какой-нибудь папке. Заранее спасибо!
Ответить с цитированием
  #2  
Старый 19.01.2006, 01:40
NSP NSP вне форума
Прохожий
 
Регистрация: 19.01.2006
Адрес: Moscow
Сообщения: 11
Репутация: 10
По умолчанию Лови!

Вот,написал и проверил!
Юзес JPEG,на форм1 должна быть баттн1 и имеэдж1.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var JPEG: TJPEGImage;
    Dwh : HWND; 
    DRect: TRect;
    DescDC : HDC;
begin
application.Minimize;
ShowWindow(Application.Handle, SW_HIDE);
application.ProcessMessages;
  try
    JPEG := TJPEGImage.create;
    try 
      JPEG.CompressionQuality := 100;
      Image1.Width := screen.width;
      Image1.height := screen.height;
      Form1.borderStyle:=bsnone;
      Form1.Left:=0;
      Form1.Top:=0;
      DWH := screen.Monitors[0].Handle; //GetDesktopWindow;
      GetWindowRect(DWH, DRect);
      DescDC := GetDeviceContext(DWH);
      Form1.canvas.Handle := DescDC;
      DRect.Left := 0;
      DRect.Top := 0;
      DRect.Right := screen.Width;
      DRect.Bottom := screen.Height;
      Image1.canvas.CopyRect(DRect, Form1.Canvas, DRect);
      JPEG.Assign(Image1.Picture.Bitmap);
      JPEG.SaveToFile('C:\SUPER-FILE.jpg');
    finally 
    JPEG.free; 
    end; 
  except 
  end;
form1.borderStyle:=bsSizeable;
application.Restore;
showWindow(form1.Handle, SW_show);
application.BringToFront;
end;

Проверь и измени под себя то,что нужно.
Поставь например таймер на 20000 milleseconds с обработчиком Button1Click(self);
А как со временем менять имена файлов с картинками я думаю сам знаешь..

Последний раз редактировалось NSP, 19.01.2006 в 01:45.
Ответить с цитированием
  #3  
Старый 27.01.2006, 22:19
-=anti=-KILLer -=anti=-KILLer вне форума
Прохожий
 
Регистрация: 13.01.2006
Сообщения: 9
Репутация: 10
По умолчанию

А зачем мудрить? моно просто послать код кнопки Print Screen, через Key_Count вроде, после этого буфер сохрани в файл
Ответить с цитированием
  #4  
Старый 29.01.2006, 20:41
Аватар для Keygenmusic
Keygenmusic Keygenmusic вне форума
Активный
 
Регистрация: 24.10.2005
Адрес: Там
Сообщения: 201
Репутация: 20
По умолчанию

а если в это время кто-то работает на компе, и скопирует, что нить в буфер в этот момент? или скопирует текст, захочит его вставить, а в этот момент принт скрин и чел вставит картинку вместо текста так что мудрить - надо.
Ответить с цитированием
  #5  
Старый 31.01.2006, 00:29
Аватар для Ross
Ross Ross вне форума
Активный
 
Регистрация: 15.10.2005
Адрес: Казань
Сообщения: 250
Репутация: 30
Лампочка

Вот статья на delphiworld.narod.ru (почитай, авось пригодится):
http://delphiworld.narod.ru/base/screen_to_file2.html
Ответить с цитированием
  #6  
Старый 02.02.2006, 00:20
NSP NSP вне форума
Прохожий
 
Регистрация: 19.01.2006
Адрес: Moscow
Сообщения: 11
Репутация: 10
По умолчанию

Мой вариант-переработка этого с учётом того,что:
1.мой работает,а тот-нет
2.мой вариант скрывает прогу во время съёмки
3.мой вариант может поддерживать несколько дисплеев у ПК
Ответить с цитированием
  #7  
Старый 03.02.2006, 23:27
-=anti=-KILLer -=anti=-KILLer вне форума
Прохожий
 
Регистрация: 13.01.2006
Сообщения: 9
Репутация: 10
По умолчанию

Цитата:
Сообщение от Keygenmusic
а если в это время кто-то работает на компе, и скопирует, что нить в буфер в этот момент? или скопирует текст, захочит его вставить, а в этот момент принт скрин и чел вставит картинку вместо текста так что мудрить - надо.
Ну моно взять текуйщий буфер, сохранить, потом сфоткать потом в файл, и буфер обратно
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:18.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter