Программа-напоминалка Дежурный 2015 (Программа-будильник)

Service program, recalls the events, alarm clock — Source code / VB .NET

Главное окно программы

glavnaja-forma

Имеет несколько функциональных кнопок плюс чекбокс, регулирующий положение формы.

ПКМ по форме вызывается контекстное меню, в котором частично продублированы функции кнопок

menju-prilozhenija

Форма настроек приложения

nastrojki

Форма со списком событий

spisok-napominanij

Форма редактирования/добавления напоминания

novoe-napominanie

Форма оповещения о наступившем событии

napominanie


Виды событий.

Виды событий выбираются в создании нового напоминания с помощью выбора соответствующей радиокнопки.

Программа хранит несколько видов событий:
1) Разовое событие. Сработает лишь однажды и будет отключено (потухнет колокольчик в списке событий)
2) Событие по дням недели. Например, каждый вторник и четверг нужно отправить отчет после обеда. Будет срабатывать каждую неделю до максимально допустимой даты
3) Определенные дни в году. Это даты в пределах одного года, но каждый год. Например — дни рождения коллег по работе
4) События по дням месяца. Выбираются числа месяца. Напоминание будет срабатывать каждый месяц из года в год в заданные числа. Стоит помнить, что если указано 30-е число, то в феврале напоминание не сработает.
5) Произвольные даты — схожее с п.3, с тем лишь отличием, что в том выбираются даты в пределах года, а здесь — любые даты и года. Все эти события можно считать разовыми.

Программа проверяет заполнение поля с текстом напоминания и корректность введенного времени.
В этой же форме задается активность напоминания. Любое напоминание можно включить или выключить, не удаляя. Это можно сделать в режиме редактирования, установив или сняв соответствующий флаг, либо включить или выключить колокольчик в списке напоминаний.
Удалить напоминание можно в списке событий на круглую кнопку с красным крестиком.

Виды оповещения

Программа имеет два основных вида оповещения — это сигнал и запуск файла

Сигнал.

Это может быть любой mp3, wav или midi-файл. Путь к нему указывается в настройках приложения. В случае, если путь не указан, или файл более не существует, будет проигрываться штатный mp3 файл из папки приложения.
В каждом напоминании можно указать и свой файл для воспроизведения. Если это не сделано, будет звучать файл, выставленный в настройках приложения, либо файл по умолчанию (Default.mp3)

В настройках можно изменить характер напоминания.
Есть поле для ввода интервала между сигналами («Отсрочка напоминания»). Это сделано для того, чтобы пользователь не пропустил событие. Ведь в момент срабатывания за ПК может никого и не быть. Если в окне напоминания нажать «Ок», то напоминание не будет отсрочено и будет считаться выполненной задачей. Если пользователь ничего не нажал, или нажал «Напомнить позже», то сигнал снова прозвучит через количество минут, указанное в настройках. И так будет происходить до тех пор, пока пользователь не отреагирует.
Сняв галку «Не напоминать вновь и вновь» такого происходить не будет, но есть шанс упустить оповещение.

Так же есть две опции: Циклическое воспроизведение и Закрыть по окончании трека
Первая опция обеспечит проигрывание напоминания бесконечное количество раз, вторая — закроет окно оповещения по окончании трека.

Запуск файла

Если выбрана эта опция, то программа в назначенное время попытается запустить файл, указанному через диалог, либо прописанному в поле вручную. Предусмотрена возможность запуска файла с параметрами. Например, команда shutdown с параметрами -s -t 0 -f выключит ПК в назначенный час.
Запускать можно как исполняемые файлы, так и любые другие, у которых есть программа, открывающая их. Ярлыки не запускаются.


В программе можно использовать «скин», выбрав картинку в настройках приложения. PNG с прозрачностью использовать не рекомендуется.
Радиокнопка «Использовать этот скин» немедленно применяет новый фон для формы.
Установив флаг «Режим перетаскивания элементов», можно мышкой расставить кнопки и метки, так, чтобы они наиболее гармонично подходили под новый скин. В настройках формы можно изменить цвет компонентов.
В случае, если хочется быстро вернуть прежний скин и расставить компоненты, как это было с самого начала, нужно выбрать пункт контекстного меню «Сброс всех настроек»

Режим «Хамелеон» создает иллюзию, что у формы пропал фон.

rezhim-khameleon

На деле приложение просто «фотографирует» участок экрана под формой и ставит полученное изображение в качестве фона. Не работает в Windows 8 И 10.

Форма напоминания

Их две — основная и миниатюрная в углу экрана — устанавливается в настройках приложения.
Основная форма отображает время и текст напоминания, а так же дополнительную информацию — в какие дни оно работает и какой файл проигрывается. Форма циклически изменяет прозрачность и плавно перебирает цвета метки с текстом события. Мини-форма не содержит дополнительной информации. Имеет две кнопки — «Закрыть» и «Напомнить позже». Текст метки мигает.

В программе предусмотрен пункт контекстного меню «Окно оповещения» для демонстрации примера.


Немного информации для программистов
В приложении используется пример применения бинарной сериализации, динамические массивы классов, создание пользовательского элемента управления и его «привязка» к динамической коллекции, вынесение отдельного функционала в отдельные классы, перемещение ЭУ мышью, использование класса Settings, воспроизведение mp3, работа с датой и временем и т.д.

Скачать проект с исходным кодом





Запись опубликована в рубрике Исходники и проекты на Visual Basic .NET. Добавьте в закладки постоянную ссылку.


Что еще можно почитать

Geronimo’s Cadillac (Modern Talking Cover) (Октябрь 1, 2016)
Развернуть окно стороннего приложения (Апрель 14, 2016)
Удержание фокуса на TextBox (Декабрь 7, 2015)
Что «слетает» после обновления движка WordPress (Январь 9, 2016)
Ю. Шатунов — Тающий снег (Cover) (Декабрь 15, 2015)


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