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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2012, 14:28   #11
hacknet
Форумчанин
 
Регистрация: 11.11.2008
Сообщений: 177
По умолчанию

Код:
jpgImg.SaveToFile(FormatDateTime('yyyymmhhnnsszz',now)'Screenshot.jpg');
не работает(


Код:
var
  JpegIm: TJpegImage;
  bm: TBitMap;
begin
  bm := TBitMap.Create;
  bm.Width := Screen.Width;
  bm.Height := Screen.Height;
  BitBlt(bm.Canvas.Handle, 0, 0,
  bm.Width, bm.Height,
  GetDC(0), 0, 0, SRCCOPY);
  JpegIm := TJpegImage.Create;
  JpegIm.Assign(bm);
  JpegIm.CompressionQuality := 20;
  JpegIm.Compress;
 JpegIm.SaveToFile(FormatDateTime('yyyymmhhnnsszz',now)'Screenshot.jpg');
  bm.Destroy;
  JpegIm.Destroy;
 end;
hacknet вне форума Ответить с цитированием
Старый 29.01.2012, 16:08   #12
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
jpgImg.SaveToFile(FormatDateTime('yyyymmhhnnsszz',now)+'_Screenshot.jpg');
немного то читайте код, а не тупо копируйте.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.01.2012, 18:12   #13
hacknet
Форумчанин
 
Регистрация: 11.11.2008
Сообщений: 177
По умолчанию

глупо будет звучать, а как же путь для сохранения) спасибо
hacknet вне форума Ответить с цитированием
Старый 29.01.2012, 21:19   #14
Delphi_ProGer
Форумчанин
 
Регистрация: 30.10.2010
Сообщений: 524
По умолчанию

Код:
jpgImg.SaveToFile('здесь путь для сохранения');
Пепел Феникса всё нормально вам написал!
Delphi_ProGer вне форума Ответить с цитированием
Старый 03.02.2012, 18:21   #15
EridorBlade
CAE Engineer
Пользователь
 
Аватар для EridorBlade
 
Регистрация: 10.03.2011
Сообщений: 75
По умолчанию

В продолжении этой темы...
А кто нибудь знает как (не используя хук) отловить нажатие Print Screen. В обработчике событий OnKeyDown если например выводить Key, то есть
Код:
Код:
Label1.Caption:=' No = '+IntToStr(Key);
ряд клавиш таким способом не отлавливается
EridorBlade вне форума Ответить с цитированием
Старый 03.02.2012, 18:41   #16
Delphi_ProGer
Форумчанин
 
Регистрация: 30.10.2010
Сообщений: 524
По умолчанию

Поставте в таймер на проверку:
Делал подобное давно, так что могут быть ошибки, пытайтесь:
Код:
if GetAsyncKeyState(VK_PRINT)>0 then ...
Delphi_ProGer вне форума Ответить с цитированием
Старый 09.02.2012, 15:40   #17
MaxOz
 
Регистрация: 09.02.2012
Сообщений: 8
По умолчанию

Господа, требуется помощь профессионалов.

пытаюсь в службу вставить создание скриншотов (чтобы скрины делались каждую минуту), процедура имеет следующий вид:

procedure TScreenMaker.OnExecuteProcedure(Sen der: TService);
var
JpegIm: TJpegImage;
bm: TBitMap;
i: integer;
begin
for I := 1 to 5 do
begin
bm := TBitMap.Create;
bm.Width := Screen.Width;
bm.Height := Screen.Height;
BitBlt(bm.Canvas.Handle, 0, 0, bm.Width, bm.Height,
GetDC(0), 0, 0, SRCCOPY);
JpegIm := TJpegImage.Create;
JpegIm.Assign(bm);
JpegIm.CompressionQuality := 20;
JpegIm.Compress;
JpegIm.SaveToFile('C:\Projects\' + FormatDateTime('yyyymmddhhnn',now) +
'Screenshot.jpg');
bm.Destroy;
JpegIm.Destroy;
sleep(60000);
end;
end;

пока все в цикле, но это не важно, просто тестирую вариант, дальше будут условия вызова.
проблема в том, что создаются файлики картинок размером с экран, только они пустые (белые). В чем может быть косяк? Пытался вставить этот код в приложение, чтобы срабатывал по нажатию кнопки - все срабатывает замечательно. Почему не работает в службе?
MaxOz вне форума Ответить с цитированием
Старый 09.02.2012, 19:02   #18
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

службы работают под другим пользователем, если не ошибаюсь.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 09.02.2012, 20:28   #19
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Не-интерактивные службы не могут взаимодействовать с рабочим столом. А в Vista и старше вообще выполняются в отдельной терминальной сессии. Безопасность, знаете ли.
пыщь
JTG вне форума Ответить с цитированием
Старый 10.02.2012, 11:45   #20
MaxOz
 
Регистрация: 09.02.2012
Сообщений: 8
По умолчанию

Цитата:
Сообщение от JTG Посмотреть сообщение
Не-интерактивные службы не могут взаимодействовать с рабочим столом. А в Vista и старше вообще выполняются в отдельной терминальной сессии. Безопасность, знаете ли.
Т.е. службы заставить делать скрины невозможно, только через обычное приложение?
MaxOz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отображение картинки в C++ в формате jpeg, используя "путь" записанный в базе данных типа Access Gared Помощь студентам 0 15.05.2011 17:29
Как сделать скриншот определенной части экрана? JonMagon Помощь студентам 11 13.05.2011 09:45
Не получается сделать скриншот C# Ski1alec C# (си шарп) 5 24.01.2011 22:56
как обрезать изоображение в формате jpeg KWN, lnc Мультимедиа в Delphi 5 08.03.2010 13:52
как сделать скриншот xakkkkker Общие вопросы Delphi 1 10.02.2008 15:24