Простой ScreenSaver на C#

// Очистить область рисования заливкой цветом фона
graph.FillRectangle(bg, 0, 0, this.Width, this.Height);

// случайным образом выбираем координаты центров кругов и рисуем их
for (int i = 0; i < 15; i++)
{
x = rnd.Next(this.Width);
y = rnd.Next(this.Height);
DrawCircle(x, y);
}
}

private void CloseWindowMouseMove(MouseEventArgs e)
{
// Если не предварительный просмотр заставки
if (!IsPreviewMode)
{
// смотрим, было ли установлено оригинальное местоположение
if (OriginalLocation.X == int.MaxValue &
OriginalLocation.Y == int.MaxValue)
{
OriginalLocation = e.Location;
}

// смотрим, переместился ли указатель мыши более чем на 20 пикселей
if (Math.Abs(e.X — OriginalLocation.X) > 20 |
Math.Abs(e.Y — OriginalLocation.Y) > 20)
{
Application.Exit();
}
}
}

private void frmMain_MouseMove(object sender, MouseEventArgs e)
{
this.CloseWindowMouseMove(e);
}

private void pbLogo_MouseMove(object sender, MouseEventArgs e)
{
this.CloseWindowMouseMove(e);
}

private void frmMain_Click(object sender, EventArgs e)
{
if (!IsPreviewMode)
{
Application.Exit();
}
}

private void pbLogo_Click(object sender, EventArgs e)
{
if (!IsPreviewMode)
{
Application.Exit();
}
}

private void frmMain_KeyDown(object sender, KeyEventArgs e)
{
if (!IsPreviewMode)
{
Application.Exit();
}
}
}
}

Файл FormConfigure.cs.

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

namespace SampleScreenSaver
{
    public partial class FormConfigure : Form
    {
        public FormConfigure()
        {
            InitializeComponent();
        }

        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            lnkAuthor.LinkVisited = true;
            System.Diagnostics.Process.Start("https://sitkodenis.ru");
        }
    }
}

Сразу размещаю исходный код полного проекта SampleScreenSaver.

Последним этапом останется выполнить вашу программу и перейти в директорию с проектом, затем в папку obj, а потом в Debug. Внутри каталога Debug найти EXE-файл и переименовать его расширение в SCR (в моем случае это файл с именем SampleScreenSaver.exe).

Вот такой получился небольшой пример по созданию скринсейвера на языке программирования C#. Конечно же, я предполагаю, что многие вещи можно было бы сделать более элегантно, но не судите строго, т.к. в этом вопросе я не являюсь экспертом. В то же время постарался изложить материал так, чтобы было понятно многим.

Спасибо за внимание и до новых встреч.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Добавить комментарий

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: