Статьи (106)

Напоминалка своими руками

27 Окт 2015
  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 1. Рейтинг: 5 из 5

Иногда бывает так, что нужно сделать что-то очень важное, но об этом просто забыть. Для этого существуют в сети всевозможные программы-напоминалки, всевозможные программы-стикеры.

Они выводят записанный заранее текст или вызывают установленный в настройках файл по истечении установленного времени. На самом деле существует бессчетное множество таких программ, платных и бесплатных. Однако подобную вещь можно сделать и средствами Windows. Кто сказал планировщик? Пусть замолчит недостойный! Ибо мы не ищем лёгких путей, ведь правда?

Итак, что же мы будем делать? А мы напишем .bat-файл для того, чтобы напоминал нам о чем-то важном:).

Чтобы написать нашу минипрограмму создадим сначала файл блокнота. В нем напишем:

@ echo off

Таким образом мы отключили вывод на экран самих команд – чтобы все было красиво и цивильно. Теперь немного оформления:

Color A

echo ===OLOLO===

С помощью первой команды мы установили цвет текста(хм, зеленый – наш любимый=)), а с помощью второй – вывели заголовок. Теперь нам надо задать переменные, в которых будут храниться заданные часы и минуты:

set /a e=%time:~0,2%

set /a q=%time:~3,2%

echo time:%time%

echo %e%

echo %q%

тут мы присваиваем параметры переменным для хранения часов и минут получаемых из системы, третьей строчкой выводим текущее время и значения переменных. Теперь нам надо загрузить из командной строки значения задаваемого таймера. Для этого пишем следующие строчки:

set /a w=%1

set /a v=%2

echo timer: %w%:%v%

pause

В конце выводим заданное время на экран и ставим программу на паузу – основной алгоритм будет запущен после нажатия любой клавиши. Итак, у нас есть показания системного таймера и время, полученное из командной строки. Что нам надо сделать дальше? Нам надо постоянно сравнивать значения таймера и переменных, и когда они совпадут – выйти из цикла и вызвать определенный файл. Для этого организуем цикл. Так как в здесь нет встроенных операторов цикла, используем операторы безусловного перехода goto. Что же у нас получится:

:1

 

set /a e=%time:~0,2%

set /a q=%time:~3,2%

if %e%==%w% (

if %q%==%v% goto 2

)

cls

echo ***********

echo =

echo ***********

cls

echo ***********

echo ==

echo ***********

cls

echo ***********

echo ===

echo ***********

cls

echo ***********

echo ====

echo ***********

cls

echo ***********

echo =====

echo ***********

cls

echo ***********

echo ======

echo ***********

cls

echo ***********

echo =======

echo ***********

cls

echo ***********

echo ========

echo ***********

cls

echo ***********

echo =========

echo ***********

cls

echo ***********

echo ==========

echo ***********

cls

echo ***********

echo ===========

echo ***********

goto 1

:2

В данном случае с помощью метки 1 мы организуем цикл, который периодически сравнивает значения переменных и системного таймера. Чтобы не расходовать зря системные ресурсы и не проверять слишком часто, а также визуализировать работу программы, забиваем цикл рисованием «кадров» полоски загрузки в псевдографике, кусками программы, отличающимися лишь количеством знаков «=». Внутри же цикла ставим сравнение переменных и системного счетчика. При положительном результате, вызывающее переход к метке 2, то есть за пределы цикла, что вызывает его завершение. Теперь ,когда время вычислено, нам нужно просто вызвать выбранный вами файл и поставить программу на паузу:

echo ENJOY!

start c:\ololo.txt

pause

exit

Теперь у вас есть свой собственный маленький напоминальщик! Чтобы его использовать, просто откомпилируем программу, заменив расширение .txt на .bat. Чтобы его запустить вбиваем в командную строку его название и время напоминания:

запуск

Потом он начинает работу:

работа

И что у нас получается:

завершение

Итак, мы написали простой батник-напоминальщик. Но у этого встроеннго системного языка есть еще куча классных возможностей. Если вы этим заинтересовались, то попробуйте еще – вам понравится=)