Открывая свой блог, хочу предложить вам попробовать себя в роли программистов.
В планах у меня выкладывать периодически небольшие программы, которые, думаю должны
быть интересны тем, кто хочет познакомиться с компьютерным кодом и узнать о возможностях
компьютера, которые доступны только разработчикам кода.
Все программы будут написаны мной, что позволяет утверждать о их некоторой
эксклюзивности (хотя на просторах интернета можно найти, не сомневаюсь, большие по
возможностям и лучшие по качеству работы.)
Представленная здесь программа простенький аналог виндоусовской карусели слайдов
которая меняет обои на рабочем столе.
Скопируйте (или лучше перепечатайте) код в любой с++ редактор, например DevC++, MinGW-w64,
Codelite, я, например, предпочитаю Codeblock, затем откомпилируйте его, думаю с этим у вас
проблем не возникнет - все современные редакторы очень дружелюбны для начинающих пользователей,
готовую программу поместите в папку с несколькими фотографиями и запустите ее. Можно создать
ярлык программы и добавить в автозагрузку, тогда программа будет автоматически запускаться
при старте компьютера.
Помните о пунктуации - каждая точка и запятая важна в коде. Удачи!
/* C++
ReplakcDesktopPicture
Autor: Ruslan Imangulov 04.01.2022 */
//это начало кода
(знак решетки) include <iostream>//Подключаем необходимые библиотеки
(знак решетки) include <windows.h>//
(знак решетки) include <cstdlib>//
(знак решетки) include<time.h>//
using std::cout;//Вместо объявления отдельных операторов
using std::endl;//можно подключить всё пространство имен std
using std::wcout;//одной записью "using namespace std;"
//но при этом увеличится вес самой программы
int randomize();//используемые функции в программе, надо обязательно
//объявить в начале кода
main()//основная функция обязательна для всех программ
{
setlocale(LC_ALL, ".OCP");//необходима для правильного отображения кириллицы
HWND hwnd = GetConsoleWindow();//узнаем "хэндл" окна
SYSTEMTIME systm;//объявляем функцию системного времени
ShowWindow(hwnd, SW_MINIMIZE);//сворачиваем окно после запуска программы
system("color 0a");//меняем цвет текста на ярко-зеленый (приятнее для восприятия)
char curr_dir[MAX_PATH];//объявляем переменную типа char, MAX_PATH - полный путь
GetCurrentDirectory(sizeof(curr_dir), curr_dir);//узнаем текущую директорию
lstrcat(curr_dir,"\\*.jpg*");//если вы ищите картинки, то вам надо использовать
//расширение *.png*, также нужно проследить за тем,
// чтобы расширение было не *.jpeg*, а *.jpg*
WIN32_FIND_DATA find_jpg;//объявляем функцию поиска
HANDLE hFile;//это управляющий хэндл
int i = 0, a;//объявляем числовые переменные
a = randomize();//присваеваем переменной случайное число
while(1)//объявляем бесконечный цикл
{
if((hFile = FindFirstFile(curr_dir, &find_jpg)) != 0)//начинаем поиск
{
do
{
if(i == a)//если равно
{
int hour, minute;//переменные для отображения текущего времени
GetSystemTime(&systm);//получаем системное время
hour = systm.wHour;//часы
minute = systm.wMinute;//минуты
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, find_jpg.cFileName,
SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);//меняем обои
if(hour < 10)//чтобы время на зкране выглядело эстетичнее
cout << "0";//устанавливаем перед однозначными значениями цифру "0"
cout << hour << ":";//выводим часы на экран
if(minute < 10)//тоже делаем с минутами
cout << "0";//
wcout << minute <<"\tТекущее фото: "<< find_jpg.cFileName << endl;//минуты и имя файла
Sleep(75);//устанавливаем задержку, вы можете изменить ее по своему усмотрению
i = 0;//сбрасываем i на ноль
a = randomize();// присваиваем новое случайное значение
}
i++;//увеличиваем i на один (операция инкримента)
}
while(FindNextFile(hFile, &find_jpg));//ищем следующее фото
FindClose(hFile);//закрываем поиск
}
else
{
wcout << "Фотографии не найдены!" << endl;//если фоток нет
system("pause");//то увы, останавливаем программу
break;// и выходим из цикла
}
}
return 0;//дань традиции
}
int randomize()//функция поиска случайных чисел
{
SYSTEMTIME systm;
GetSystemTime(&systm);
srand((unsigned)time(NULL));
int number = 0;
int tm;
tm = systm.wMilliseconds;
number = (rand() + tm) % 13 ;//число 13 желательно заменить на равное количеству фото в папке
return number;//возвращаемое случайное число
}
//это конец кода