Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
Заблокирован

Программа делающая скриншот, вылетает с ошибкой

23.10.2012, 01:29. Показов 1331. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток.
У меня следующая проблема. Есть программа, которая должна делать скриншот экрана и она его делает. Однако, при этом, она почему-то, вылетает с ошибкой. Делает скриншот и вылетает. При этом, та программа, из которой я вынул код скриншота, работает прекрасно.
Вот код моей программы:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
var
ScreenS : TCanvas;
ScreenV : HDC;
begin
ScreenV := GetDC(0);
ScreenS := Canvas.Create();
ScreenS.Handle := ScreenV;
Image1.Canvas.CopyRect(Rect(0, 0, Image1.Width, Image1.Height),
ScreenS, Rect(0, 0, Screen.Width, Screen.Height));
ReleaseDC(0, ScreenV);
ScreenS.Free;
Image1.Picture.SaveToFile('Screen.jpg');
end;
А вот программа, из которой я вынул этот код:
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.10.2012, 01:29
Ответы с готовыми решениями:

Программа периодически вылетает с ошибкой
Моя программы переодически крашется. Может быть так что я с ней работаю все ок, а может быть что программа завершится крашем. У меня...

Программа вылетает с ошибкой
начал читать Б. Страуструпа "Программирование. Принципы и практика использования C++" Пробую пример из текста и при запуске вылетает...

Программа вылетает с ошибкой
Написал программу (64-bit), очень требовательную к количеству памяти. При запуске считывает справочники в память и занимает там гигов 20....

7
Заблокирован
23.10.2012, 01:43
ScreenS := TCanvas.Create();
0
angstrom
23.10.2012, 04:24
Используя промежуточный битмап:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var
  DC : HDC;
  bm : TBitmap
begin
  DC := GetDC(0);
  bm := TBitmap.Create;
  try
    BitBlt(bm.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, DC, 0, 0, SCRCOPY);
    Image1.Assign(bm);
    Image1.Picture.SaveToFile('Screen.jpg');
  finally
    bm.Free;
    ReleaseDC(0, DC);
  end;
end;
4190 / 1838 / 221
Регистрация: 06.10.2010
Сообщений: 4,124
23.10.2012, 08:38
Для скриншота в BitBlt желательно выставить флаг CAPTUREBLT.
0
191 / 29 / 8
Регистрация: 15.09.2011
Сообщений: 430
23.10.2012, 10:39
Попробуй так:

Delphi
1
2
3
4
5
6
7
8
9
10
11
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:= 100;
JpegIm.Compress;
JpegIm.SaveToFile('image.jpg');
bm.Destroy;
JpegIm.Destroy;
У меня все работает без ошибок.
0
Заблокирован
23.10.2012, 18:15  [ТС]
Цитата Сообщение от murderer Посмотреть сообщение
Для скриншота в BitBlt желательно выставить флаг CAPTUREBLT.
Это вы сейчас про какой компонент?
0
4190 / 1838 / 221
Регистрация: 06.10.2010
Сообщений: 4,124
23.10.2012, 19:11
BitBlt
0
Заблокирован
23.10.2012, 22:58  [ТС]
Цитата Сообщение от Бородач Посмотреть сообщение
ScreenS := TCanvas.Create();
Попробовал. Все работает нормально. Но что странно - в той программе, из которой я слямзил код, все работало нормально в первозданном виде!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.10.2012, 22:58
Помогаю со студенческими работами здесь

Программа вылетает с ошибкой
Всех приветствую. Написал программу на основе компонента WebBrowser, суть программы просто автоматизация ряда действий на одном сайте....

Программа периодически вылетает с ошибкой
Пишу чат-бота для вк. Работает минут 15 и вылетает вот с такой ошибкой: requests.exceptions.ReadTimeout:...

Программа вылетает с неизвестной ошибкой
Всем доброго времени суток. Имеется следующий простенький код для рисования круга. #include <iostream> #include <windows.h> ...

Виртуальные функции. Программа вылетает с ошибкой.
Хотя дело может быть и не в виртуальных функциях. В общем портянка такова: #include <iostream> #include <cstdlib> ...

Программа то вылетает с ошибкой, то работает корректно
При запуске программа то вылетает с ошибкой, то работает нормально. Нутром чую, что проблема в следующем куске кода, где я создаю объекты...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru