Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
MaxxximyM
18 / 2 / 1
Регистрация: 31.08.2011
Сообщений: 132
#1

Установка фонового рисунка рабочего стола - C++

05.04.2012, 18:12. Просмотров 1471. Ответов 10
Метки нет (Все метки)

Нашел по этой теме в инете такой код:

C++
1
2
3
4
5
6
7
8
#include "stdafx.h"
#include <Windows.h>
 
 
void main()
{
    SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "D:\\1.bmp",SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
}
Откомпилировал, запустил - фон не поменялся(файл 1.bmp на диск D я положил).
В чем ошибка???
Windows 7, Microsoft Visual Studio 2010
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Xind
275 / 148 / 7
Регистрация: 05.11.2011
Сообщений: 425
Записей в блоге: 1
05.04.2012, 18:18     Установка фонового рисунка рабочего стола #2
Цитата Сообщение от MaxxximyM Посмотреть сообщение
Откомпилировал, запустил - фон не поменялся(файл 1.bmp на диск D я положил).
Скорее всего приложение должно обладать соответствующими правами.
MaxxximyM
18 / 2 / 1
Регистрация: 31.08.2011
Сообщений: 132
05.04.2012, 18:20  [ТС]     Установка фонового рисунка рабочего стола #3
Запустил от имени администратора - ничего не вышло...
Xind
275 / 148 / 7
Регистрация: 05.11.2011
Сообщений: 425
Записей в блоге: 1
05.04.2012, 18:21     Установка фонового рисунка рабочего стола #4
тогда нужно почитать: http://support.microsoft.com/kb/97142/ru, http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
MaxxximyM
18 / 2 / 1
Регистрация: 31.08.2011
Сообщений: 132
05.04.2012, 18:24  [ТС]     Установка фонового рисунка рабочего стола #5
Xind можешь откомпилировать и запустить у себя?
Xind
275 / 148 / 7
Регистрация: 05.11.2011
Сообщений: 425
Записей в блоге: 1
05.04.2012, 18:27     Установка фонового рисунка рабочего стола #6
MaxxximyM, Проверь что возвращает функция, как тут http://www.firststeps.ru/mfc/winapi/r.php?149
Ошибку более подробно можно узнать через функцию http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx


Цитата Сообщение от MaxxximyM Посмотреть сообщение
можешь откомпилировать и запустить у себя?
Нет под рукой компилятора.
MaxxximyM
18 / 2 / 1
Регистрация: 31.08.2011
Сообщений: 132
05.04.2012, 18:34  [ТС]     Установка фонового рисунка рабочего стола #7
Проверил по первой ссылке, выдает Error Change.
По второй ссылке я не понял немного как сделать.
Xind
275 / 148 / 7
Регистрация: 05.11.2011
Сообщений: 425
Записей в блоге: 1
05.04.2012, 18:37     Установка фонового рисунка рабочего стола #8
MaxxximyM,
C++
1
DWORD dw = GetLastError();
И посмотреть код ошибки в dw. Только GetLastError нужно вызвать после установки обоев.
MaxxximyM
18 / 2 / 1
Регистрация: 31.08.2011
Сообщений: 132
05.04.2012, 18:41  [ТС]     Установка фонового рисунка рабочего стола #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "stdafx.h"
#include <Windows.h>
#include "iostream"
using namespace std;
 
void main()
{
    
    char filename[10];
    strcpy(filename,"1.jpg");
    if (SystemParametersInfo(SPI_SETDESKWALLPAPER,0,
        &filename,SPIF_SENDWININICHANGE)==TRUE)
    {
        cout << "Ok change" << endl;
    }
    else
        cout << "Error change" << endl;
    GetLastError();
}
При этом коде GetLastError ничего не выдает.
Xind
275 / 148 / 7
Регистрация: 05.11.2011
Сообщений: 425
Записей в блоге: 1
05.04.2012, 18:46     Установка фонового рисунка рабочего стола #10
MaxxximyM, так ведь вы не указали куда передать возвращаемое значение. Я же указал:
C++
1
    DWORD dw = GetLastError();
функция возвращает значение и присваивается переменной dw с типом двойного слова. Теперь нужно вывести на экран значение, это можно сделать через
C++
1
cout << dw;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2012, 20:29     Установка фонового рисунка рабочего стола
Еще ссылки по теме:
C++ Как читать иконки с Рабочего стола??
Как считывать видео с рабочего стола? C++
C++ Заменить рабочий стол картинкой рабочего стола
C++ Как определить координаты мыши относительно рабочего стола
Консоль должна появиться при запуске в определенный области рабочего стола C++

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

Или воспользуйтесь поиском по форуму:
MaxxximyM
18 / 2 / 1
Регистрация: 31.08.2011
Сообщений: 132
05.04.2012, 20:29  [ТС]     Установка фонового рисунка рабочего стола #11
Получил ошибку 2, тоесть - ERROR_FILE_NOT_FOUND (0x2) согласно MSDN
Но файл то есть!!!

Добавлено через 1 час 31 минуту
Xind спасибо за помощь. Разобрался, вот код:
C++
1
2
3
4
5
6
7
#include "stdafx.h"
#include <Windows.h>
 
void main()
{
    SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, L"C:\\1.jpg",SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
}
Нужно просто было добавить L перед "C:\\1.jpg"
Yandex
Объявления
05.04.2012, 20:29     Установка фонового рисунка рабочего стола
Ответ Создать тему
Опции темы

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