Задание

  1. Написать на С простой текстовый редактор с GUI, используя WinAPI. Помимо очевидного набора и просмотра текста, редактор должен обладать следующими функциями:
    • работа с буфером обмена (копировать, вставить, вырезать) c помощью горячих клавиш и контекстного меню;
    • сохранение текста в файл и открытие текстовых файлов;
    • перечисленные функции должны быть продублированы в главном меню, также в нём должен присутствовать пункт Справка > О программе, отображающий соответствующую информацию.

Разработку вести под Linux c использованием кросс-компилятора mingw-gcc. Продемонстрировать работу программы в Wine и Windows (можно в виртуальной машине из лабораторной работы №1).

  1. Написать на C программу c GUI по вашему варианту. Эту программу можно разрабатывать сразу в Windows.

Варианты заданий

  1. Генератор паролей, использующий мышь и клавиатуру как фактор энтропии.
  2. Калькулятор с функцией инженерного/программистского/перевода величин (на выбор).
  3. TODO-лист с уведомлениями и возможностью сохранять и открывать списки дел.
  4. Программа просмотра изображений.
  5. Простой файловый менеджер (просмотр содержимого папок, переименовывание, копирование, вставка, удаление файлов)
  6. Получение информации об аппаратном обеспечении, сохранение отчёта.
  7. Программа для рисования с возможностью сохранения изображений.
  8. Секундомер + таймер/помодоро таймер. Уведомление должно сворачивать все окна, кроме своего, а также проигрывать звук, либо менять фон рабочего стола.
  9. Программа создания скриншотов с возможностью создания серий скриншотов через заданный промежуток времени.
  10. Симулятор питомца с уведомлениями.
  11. Логгер активности. Приложение должно отслеживать какие окна в системе и сколько времени были активными, с возможностью сохранения логов.
  12. Клавиатурный тренажёр для одного языка(раскладки) с возможностью загрузки текста.

Пример

Чтобы хоть как-то облегчить вашу нелёгкую жизнь, вот простой пример и makefile к нему.

Откомпилировав и запустив данную программу с помощью make, получим такой результат:

Откомпилированный пример в Windows 10

И она же под Wine:

Откомпилированный пример в Wine

Примечание: если нужно создать приложение для 32 разрядной Windows, используйте i686-w64-mingw32-gcc.

Почитать

  1. theForger’s Win32 API Tutorial
  2. Чарльз Петцольд. Программирование для Windows 95
  3. Джеффри Рихтер, Кристоф Назар. Windows via C/C++

Необходимые пакеты

Debian-based

  • make
  • mingw-w64
  • wine

Arch-based

  • make
  • mingw-w64
  • wine
  • wine-mono