Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с реестром, установка обоев рабочего стола 
:(
    Опции темы
Vendigo
Дата 1.3.2006, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 25.9.2005
Где: Челябинская обл. г. Миасс

Репутация: нет
Всего: нет



Подскажите, люди добрые smile
Хотел программно, через реестр изменить обои рабочего стола.
Но что-то не выходит.
Программа выполняется, смотрю через regedit в HKEY_CURRENT_USER \ Control Panel \ Desktop параметр Wallpaper остается прежний. Что не так?
Код

    TRegistry *Reg = new TRegistry;                
    Reg->OpenKey("\Control Panel\Desktop",true);

    Reg->WriteString("Wallpaper",
        "D:\\Документы\\Мои рисунки\\Снаружи\\Обои\\Системные\\Girls 06.jpg");

    LB->Caption = Reg->ReadString("Wallpaper");            // LB это Label


Думаю, через реестр, можно будет устанавливать в качестве "обоев" .jpg картинки а не только .bmp
(Через SystemParametersInfo получалось только с .bmp)

P.S. стоит Windows XP, работаю в Builder 6.

Это сообщение отредактировал(а) Vendigo - 1.3.2006, 21:19
PM MAIL   Вверх
Kostt
Дата 2.3.2006, 08:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 169
Регистрация: 8.1.2006
Где: Томск

Репутация: нет
Всего: 3



Навскидку - попробуй в конце Reg->CloseKey()
PM MAIL   Вверх
Vendigo
Дата 2.3.2006, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 25.9.2005
Где: Челябинская обл. г. Миасс

Репутация: нет
Всего: нет



Спасибо Kostt, хороший совет. Но все равно не работает!
PM MAIL   Вверх
p0s0l
Дата 2.3.2006, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 3
Всего: 112



Если через реестр, то в конце надо делать еще
Код
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, NULL, SPIF_SENDWININICHANGE);
иначе сразу не увидишь эффекта...
Но, имхо, так не установить .jpg в качестве обоев... Нужно вначале преобразовать .jpg в .bmp...

Можно попробовать устанавливать обои через IActiveDesktop:
Код
IActiveDesktop *ad;
CoInitialize (NULL);
CoCreateInstance( CLSID_ActiveDesktop, NULL, CLSCTX_INPROC_SERVER, IID_IActiveDesktop, (void**)&ad );  
ad->SetWallpaper( "D:\\Документы\\Мои рисунки\\Снаружи\\Обои\\Системные\\Girls 06.jpg", 0 );
ad->ApplyChanges( AD_APPLY_ALL || AD_APPLY_FORCE );
...



--------------------
С уважением, г-н Посол.
PM   Вверх
Helicopterr
  Дата 4.3.2006, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 20.8.2005
Где: Stavropol

Репутация: нет
Всего: 3



Цитата(p0s0l @ 2.3.2006, 23:32)
Можно попробовать устанавливать обои через IActiveDesktop:
Код

#include <shlobj.h>
#include <unknwn.h>
IActiveDesktop *ad;
CoInitialize (NULL);
CoCreateInstance( CLSID_ActiveDesktop, NULL, CLSCTX_INPROC_SERVER, IID_IActiveDesktop, (void**)&ad );  
ad->SetWallpaper( "D:\\Документы\\Мои рисунки\\Снаружи\\Обои\\Системные\\Girls 06.jpg", 0 );
ad->ApplyChanges( AD_APPLY_ALL || AD_APPLY_FORCE );
...


а что в этом коде не хватает а то моя виз. студия так вот:

error C2065: 'IActiveDesktop' : undeclared identifier
error C2065: 'ad' : undeclared identifier
error C2227: left of '->SetWallpaper' must point to class/struct/union

ну и т.п.
?


--------------------
people can fly
PM MAIL   Вверх
_hunter
Дата 6.3.2006, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 13
Всего: 98



судя по MSDN ( интересно, чего бы самому не глянуть... ) IActiveDesktop описан в shlobj.h


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Fixin
Дата 6.3.2006, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 8
Всего: 18



Цитата(_hunter @ 6.3.2006, 11:20 Найти цитируемый пост)
судя по MSDN
Судя по коду, он его включил smile

PM MAIL ICQ   Вверх
_hunter
Дата 6.3.2006, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 13
Всего: 98



значит все нормально smile


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Rutti
Дата 10.4.2008, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 225
Регистрация: 25.7.2004

Репутация: нет
Всего: нет



Да нет. Что-то не так. У меня теже ошибки.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0462 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.