Desktop Reminder (Python3, C++)

Добавлено: 12/01/2016 09:03 |  Обновлено: 31/05/2019 20:12 |  Добавил: nick |  Просмотры: 1642 Комментарии: 0
Вводная часть
Пример программы-напоминания (Desktop Reminder).
Desktop Reminder (Python3, C++)
Desktop Reminder (Python3, C++)
В Сети вы можете найти кучу программ-напоминалок, но большинство из них излишне наворочены или являются платными. Здесь я предлагаю текст простой программы с всплывающим диалоговым окном, появляющегося в день определенного, заданного вами события. Для сравнения приводится исходный код на Python и C++. Пример на C++ разработан для Windows и использует WinAPI. Установки дополнительных библиотек не требует. Как вы можете видеть ниже код на Python значительно короче, что вообще наглядно отличает программы на этом языке. Программу на Python не нужно компилировать, но, естественно нужно установить сам интерпретатор, на Linux этого делать в большинстве случаев не придется, но может потребоваться установить пакет python-tk. В качестве расширения Python-файла нужно использовать .pyw, чтобы избавиться от появления консоли.

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

Для проверочной компиляции Windows-версии использовался компилятор TDM-GCC.

Python3
from tkinter import *
from datetime import *
import tkinter.messagebox as box
root = Tk()
root.withdraw() # Скрываем корневое окно
today = datetime.today()
if (today.day == 12):
    box.showwarning('Сегодня '+str(today.day)+' день месяца',
                'Наступило очень важное событие!')
C++
#include <Windows.h>
#include <ctime>
using namespace std;
int DisplayResourceNAMessageBox(char *buffer)
{
    MessageBoxA( //“ANSI” версия
        NULL,
        "Наступило очень важное событие!",
        buffer,
        MB_OK | MB_ICONWARNING
    );
}
int main()
{
    char buffer [80];
    time_t now = time(0);
    tm *ltm = localtime(&now);
    strftime (buffer,80,"Сегодня %d день месяца",ltm);
    int day = ltm->tm_mday; // день месяца от 1 до 31
    if (day == 11)
        DisplayResourceNAMessageBox(buffer);
    return 0;
}

Оставьте свой комментарий

Комментариев нет