Простой ScreenSaver на C#
Сегодня попытаемся написать простенькую заставку для ОС Windows на языке программирования C#. Прошу меня строго не судить, т.к. я не специализируюсь в программировании на данном языке. Иногда, для разнообразия, пишу по мелочам на нем ;-).
В качестве среды разработке мы воспользуемся Microsoft Visual Studio 2015. А также нам понадобятся такие файлы как изображение для нашего логотипа (например, размером 300×300 пикселей и в формате png) и любая иконка (16×16 пикселей) в формате ico.
Я не буду описывать все подробно, а остановлюсь лишь на важных моментах. Для удобства исходный код максимально покрою комментариями.
Итак, при первом запуске среды разработки создаем приложение типа Windows Forms Application. Для названия проекта и его решения я выбрал следующее название — SampleScreenSaver. Имя файла основной формы мы изменим на FormMain. Дополнительно добавим еще одну форму в наш проект и назовем ее как FormConfigure.
Свойства формы FormMain
Название свойства | Значение свойства |
(Name) | frmMain |
FormBorderStyle | None |
BackColor | White |
WindowState | Maximized |
Я не стал описывать подробнее указанные свойства, т.к. здесь все итак понятно. При возникновении вопросов всегда существует возможность воспользоваться справочной системой среды программирования (клавиша F1).
Рис. 1. Пример расположения элементов управления на основной форме
Свойства элемента управления PictureBox
Название свойства | Значение свойства |
(Name) | pbLogo |
BackColor | Transparent |
Image | ваш файл с изображением |
SizeMode | AutoSize |
Пример моего изображения см. на рис. 1.
Свойства элемента управления Label
Название свойства | Значение свойства |
(Name) | lblCopyright |
ForeColor | Silver |
Text | Программирование и не только |
Свойства элемента управления Timer
Название свойства | Значение свойства |
(Name) | tmrTimer |
Interval | 300 |
Свойства формы FormConfigure
Название свойства | Значение свойства |
(Name) | FormConfigure |
Icon | ваш файл с иконкой |
ShowInTaskbar | false |
Text | Настройки |
StartPosition | CenterScreen |
MaximizeBox | false |
MinimizeBox | false |
Сразу скажу, насчет формы FormConfigure, я не предусматриваю какие-либо настройки для нашей заставки. При желании вы самостоятельно сможете добавить свои настройки (например, сохранять значения настроек в реестре Windows).
Пришла очередь рассмотреть исходный код форм и нашего проекта.
Файл Program.cs.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;namespace SampleScreenSaver
{
static class Program
{
/// <summary>
/// Главная точка входа для приложения.
/// </summary>
[STAThread]
static void Main(string[] args)
{
if (args.Length > 0)
{
if (args[0].ToLower().Trim().Substring(0, 2) == "/s")
{
// Отобразить заставку
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
ShowScreenSaver();
Application.Run();
}
else if (args[0].ToLower().Trim().Substring(0, 2) == "/p")
{
// Предварительный просмотр заставки
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new frmMain(new IntPtr(long.Parse(args[1]))));
}
else if (args[0].ToLower().Trim().Substring(0, 2) == "/c")
{
// Отображение окна с настройками заставки
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FormConfigure());
}
}
else
{
// Отобразить заставку
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
ShowScreenSaver();
Application.Run();
}
}