Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
4lice
0 / 0 / 0
Регистрация: 19.07.2014
Сообщений: 10
#1

Как работает программа показа живых обоев на рабочем столе (winVista/7/8/8.1)? - C++

19.07.2014, 12:51. Просмотров 610. Ответов 0
Метки нет (Все метки)

Существует программа DreamScenes, которая позволяет устанавливать видео обои на рабочий стол (обычное видео в формате dream/wmv/mpg). Также в VLC media player есть функция показа видео в режиме обоев (исходники данной программы доступны, но разобраться в них не получилось: http://www.videolan.org/vlc/download-sources.html). Как выглядит код, реализующий такую фичу?
Пока я смогла реализовать такое "чудо" таким образом (примерный код, рабочий):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <windows.h>
#include <iostream>
#include <fstream>
 
using namespace std;
 
void main()
{
    WIN32_FIND_DATA File;
    HANDLE F;
for(int i=0; i < 10; i++)  {
    F=FindFirstFile("C:\\leto\\*.jpg", &File);
    if (F!=INVALID_HANDLE_VALUE)
    {        do
                {
                ofstream bat("C:\\logo.bat", ios_base::out);
                bat << "REG ADD \"HKCU\\Control Panel\\Desktop\" /v Wallpaper /d \"C:\\leto\\" << File.cFileName <<"\" /f" << endl <<
                "rundll32.exe user32.dll,UpdatePerUserSystemParameters" << endl;
                bat.close();
                system("C:\\logo.vbs");
                Sleep(200);
                }
             while (FindNextFile(F,&File)!=0);
                FindClose(F);
    }
}
    system("pause");
}
Описание: В папке находятся картинки (кадры анимации). Находим первую картинку, в батнике прописываем код, который меняет обои рабочего стола на мою картинку, запускаем vbs-скрипт, который позволяет выполнять батник в фоновом режиме, затем делаем паузу между выполнением следующей команды в программе С++ (0.2 сек). Таким образом наблюдается анимация на рабочем столе (но на первом проходе она виснет, почти не выполняется, потом работает, в этом и проблема). Как реализовать нормально, без зависа и кучи картинок, как в упомянутых в начале темы программах?

Добавлено через 6 часов 45 минут
Нашла в исходниках VLC media player файлы directx.c и vlc_playlist.h, которые отвечают за видео-обои. Используется DirectShow. Видимо, тему нужно перенести в DirectX. Не думаю, что сама разберусь, эта тема для меня - темный лес. Т.е. нужно писать видео-плеер, в который затем запилить фичу из тех файлов?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.07.2014, 12:51
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как работает программа показа живых обоев на рабочем столе (winVista/7/8/8.1)? (C++):

Как создать ярлык на рабочем столе? - C++
Как создать ярлык на рабочем столе(MFC, API, но желательно не COM...)?

Как из программы сменить обои на рабочем столе? - C++
Собственно, сабж!:) Даже не знаю, где копать. Поверхностный взгляд на MSDN никаких идей не принес:(

Файл на рабочем столе :) - C++
Пытаюсь создать файл на рабочем столе, прежде проверяю есть ли он там :) необходимые функции bool FileExists(const char *fname) { ...

Создать папку на рабочем столе - C++
Добрый день подскажите как создать папку на рабочем столе. На своем рабочем столе я создал папку а вот как теперь сделать чтобы программа...

Ошибка записи в файл на рабочем столе - C++
Пытаюсь записать предложение на файл созданный на рабочем столе но не получается #include &lt;fstream&gt; using namespace std; int...

Вывести список существующих на рабочем столе окон - C++
Пожалуйста помогите в решение данной проблемы. Вот задание: вывести в консольное приложение список существующих на рабочем столе окон....

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.07.2014, 12:51
Привет! Вот еще темы с ответами:

Убрать значек щита с иконки программы на рабочем столе! - C++
Здравствуйте! Устанавливаю программу, создаю значок на рабочем столе. windows 7 ставит на мой ярлык еще значок щита. Как обойти программно...

Программа, определяющая, сколько живых растений будет в N-ом году - C++
Время жизни растения составляет 20 лет. В первый год плод растения попадает в землю. Первые побеги растения появляются лишь на 2 год....

Смена обоев на рабочем столе. Не работает функция - C++ WinAPI
Нужно поменять обои на рабочем столе .вычитал о функции SystemParametersInfo. При попытке ей воспользоваться (точно так же, как описывалось...

QT смена обоев на рабочем столе - C++ Qt
Здравствуйте! Возможно ли средствами QT делать смену обоев рабочего? Перелопатил весь инет и форум, ничего не нашел. Интересует, в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru