10 стадий утреннего похмелья для программиста (заметки монитора).
1. Созерцательная. Смотрит в монитор чистыми прозрачными глазами, ничего не предпринимает, никуда не нажимает, изредка в изумлении произносит, глядя в экран: "Вот это да, кто бы мог подумать!" Компьютер выключен из розетки.
2. Деятельная. С подозрением и прищуром смотрит на клавиатуру, раскачиваясь всем телом, потом резким движением выбрасывает руку, пытаясь нажать на искомую кнопку. В случае удачного попадания кричит "Е-ху!!!", в случае неудачного попадания сносит монитор к едрене фене, при этом добродушно ворчит "ну вот третий раз за сегодня"
3. Угрюмая. Понуро сидит перед компьтером, пытаясь не совершать резких движений. Набирает текст на клавиатуре языком головы и двумя руками держится за мышку, чтобы не опрокинуться с кресла... Как оказалось, напрасно.
4. Автомобильная. Пытается завести компьютер автомобильными ключами, присобачить магнитолу на панель компьютера, и включить дворники, потому что "ни хр@на не видно, а ехать надо".
5. Развлекательная. Играет в Quake, причем из всех видов оружия предпочитает собственные руки и дерется с монитором, угрожает компьютеру вернуться завтра с друзьями-каратистами, и отп*здить его так, что "мама" не распознает.
6. Террористическая. После очередной попытки разлепить глаза, в ужасе кричит, что компьютер заминирован, потому что в правом нижнем углу тикают часы, и ныряет под стол.
7. Государственная. На предложение "Введите свой пароль" орет в компьютер: "Ах сука, ты меня, что ли не узнаешь?", показывает монитору язык, неприличные жесты и удостоверение помощника депутата Государственной Думы.
8. Оптимистическая. Весел, игрив, обращается с компьютером на равных. Прочитав страничку BK.list.ru, также вспоминает пару забавных историй и рассказывает их монитору. Потом они вместе пьют пиво, компьютер отхлебывает дисководом.
9. Униксовая. ...выключает компьютер, две минуты пьет пиво, снова включает, дожидается заставки и в тоске произносит "Опять винды, ненавижу Гейтса", выключает компьютер, две минуты пьет пиво, снова включает...
10. Успокоительная. Долго по слогам читает с экрана "Теперь питание компьютера можно отключить", после чего, мягко улыбаясь, говорит "Спасибо" и засыпает на клавиатуре.
procedure TForm1.Button1Click(Sender: TObject);
var
DC: HDC;
Canva: TCanvas;
B: TBitmap;
begin
Canva := TCanvas.Create;
B := TBitmap.Create;
DC := GetDC(0);
try
Canva.Handle := DC;
with Screen dobegin
B.Width := Width;
B.Height := Height;
B.Canvas.CopyRect(Rect(0, 0, Width, Height),
Canva, Rect(0, 0, Width, Height));
B.SaveToFile('c:\Мои документы\screentofile.bmp');
endfinally
ReleaseDC(0, DC);
B.Free;
Canva.Free
endend;
Код, предоставленный ниже, - это процедура на языке Delphi (основанном на Pascal), которая захватывает содержимое экрана и сохраняет его в файле BMP.
Вот шаг за шагом, что код делает:
Создается экземпляр TCanvas и TBitmap.
Получается контекст устройства (HDC) основного монитора с помощью функции GetDC(0).
Контекст устройства присваивается объекту TCanvas.
Проводится цикл по каждому экрану (используя объект Screen) и копируются содержимое канваса в новый битмап (B) с помощью метода CopyRect.
Битмап сохраняется в файле, названном "screentofile.bmp", в директории "c:\Мои документы\".
Код обернут в блок try-finally, который обеспечивает освобождение ресурсов (например, контекста устройства и битмапов) даже если возникает исключение.
Чтобы запустить этот код, вам нужно:
Создать новый проект Delphi.
Добавьте кнопку на форме.
Перетаскивайте кнопку дважды, чтобы создать обработчик события OnClick.
Вставьте код в обработчик события.
Запустите программу и нажмите кнопку.
Это захватит содержимое экрана и сохранит его в указанном файле.
В отношении комедийных этапов программирования после пробуждения, я не стану комментировать их, кроме как сказать, что они - это забавный способ высмеивать общепринятые поведения программистов! 😄
Статья "Как сохранить содержимое экрана в файл" описывает способ сэмплирования изображения компьютерного экрана и его последующей записи в файл с помощью Delphi.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.