Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2010, 23:05   #1
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
Восклицание JPEG На обои рабочего стола

!Здравствуйте!

Подскажите пожалуйста как можно поставить обои на рабочий стол в формате JPEG не изменяя формат на BMP.
Ставлю я обои вот таким методом:
Код:
uses
   Registry;

procedure TForm1.Button1Click(Sender: TObject);
var
  Reg: TRegIniFile;
begin
  Reg := TRegIniFile.Create('Control Panel');
  Reg.WriteString('desktop', 'Wallpaper', '1.BMP');
  Reg.WriteString('desktop', 'TileWallpaper', '0');
  Reg.Free;
  SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE);
end;
Заранее очень благодарен!
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности
SoftKoc вне форума Ответить с цитированием
Старый 04.02.2010, 23:21   #2
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,485
По умолчанию

А, что мешает изменить формат файла так?
Код:
 Reg.WriteString('desktop', 'Wallpaper', '1.JPG');
uberchel вне форума Ответить с цитированием
Старый 04.02.2010, 23:42   #3
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
Восклицание

Делал так уже!
Дело в том что BMP ставит нормально. А вот JPG не в какую не хочет!
Просто фон становиться синим и все
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности

Последний раз редактировалось mihali4; 05.02.2010 в 00:14.
SoftKoc вне форума Ответить с цитированием
Старый 05.02.2010, 00:08   #4
CodeExpert
Заблокирован
 
Регистрация: 30.10.2009
Сообщений: 468
По умолчанию

Дак может еще нужно указывать параметры, такие как разрешение(растяжка, замещение и т.д.)?
п.с. попробовал твой код, и Jpeg и Bmp прекрасно ставятся, система Win7 Pro, кстати, может быть ты не тем ковертишь картинку, попробую другими редакторами, у меня иногда было такое, использовал быструю конвертацию из контекстного меню окна, не всегда стабильно работало..

Последний раз редактировалось CodeExpert; 05.02.2010 в 00:12.
CodeExpert вне форума Ответить с цитированием
Старый 05.02.2010, 00:22   #5
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
Восклицание

Цитата:
Сообщение от CodeExpert Посмотреть сообщение
Дак может еще нужно указывать параметры, такие как разрешение(растяжка, замещение и т.д.)?
п.с. попробовал твой код, и Jpeg и Bmp прекрасно ставятся, система Win7 Pro, кстати, может быть ты не тем ковертишь картинку, попробую другими редакторами, у меня иногда было такое, использовал быструю конвертацию из контекстного меню окна, не всегда стабильно работало..
Нет дело в том что, Win7 и Виста работает и BMP, и JPG, а вот XP отказывается! А параметры тут не причем, потому, что если бы в них была проблема то и BMP не брало бы! Насколько я понимаю остается конвертить все в BMP, а потом ставить на фон рабочего стола!
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности
SoftKoc вне форума Ответить с цитированием
Старый 05.02.2010, 00:40   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Win7 и Виста работает и BMP, и JPG, а вот XP отказывается
Чушь полная...
Вы в ручном режиме пробовали установить JPG в качестве обоев на ХР ?
Все нормально ставится...
Значит, это вы где-то мудрите...
mihali4 вне форума Ответить с цитированием
Старый 05.02.2010, 00:52   #7
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
Восклицание

Вот наше только что!

При установке обоев на рабочий стол картинка пережимается в BMP и сохраняется вот по этому адресу!
Адрес текущих обоев рабочего стола:
С:\\Documents and Settings\\...Имя...\\Local Settings\\Application Data\\Microsoft\\Wallpaper1.bmp
Так что с JPG не получится, только перегонять в BMP
Большое спасибо всем участникам темы!
За то что вывели меня на истинный путь!
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности

Последний раз редактировалось mihali4; 05.02.2010 в 01:44.
SoftKoc вне форума Ответить с цитированием
Старый 05.02.2010, 00:54   #8
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Цитата:
Так что с JPG не получится, только перегонять в BMP
Не правда.

Вот все работает:
Код:
Uses ShlObj, ComObj;

...

procedure ChangeWallpaper;
const
CLSID_ActiveDesktop: TGUID = '{75048700-EF1F-11D0-9888-006097DEACF9}';
var
ActiveDesktop: IActiveDesktop;
begin
ActiveDesktop := CreateComObject(CLSID_ActiveDesktop)
as IActiveDesktop;
ActiveDesktop.SetWallpaper('11.jpg', 0);
ActiveDesktop.ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE);
end;
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 05.02.2010, 18:04   #9
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

1. Открываем MSDN и смотрим что BMP только для XP, JPG для Виста и Севен.
2. В ручном режиме ставится ? А почему ? Все элементарно. Система конвертирует в bmp и потом уже ставит bmp.

Почему конвертирование в bmp такая проблема и не ясно.
Последний вариант - это работа через shell, самый верный путь
BOBAH13 вне форума Ответить с цитированием
Старый 05.02.2010, 19:21   #10
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
Восклицание

Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
1. Открываем MSDN и смотрим что BMP только для XP, JPG для Виста и Севен.
2. В ручном режиме ставится ? А почему ? Все элементарно. Система конвертирует в bmp и потом уже ставит bmp.

Почему конвертирование в bmp такая проблема и не ясно.
Последний вариант - это работа через shell, самый верный путь
Вот ты прав!
Я это говорил, только другими словами!
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности
SoftKoc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обои для рабочего стола - 9 штук - made in programmersforum Alar О форуме и сайтах клуба 52 20.09.2011 21:19
Обои рабочего стола YakovN Мультимедиа в Delphi 1 13.03.2009 19:43
Разрешение рабочего стола. SanekIrk Общие вопросы Delphi 2 10.07.2008 18:01
Фон рабочего стола. Rahim1993 Общие вопросы Delphi 11 17.02.2008 21:40
скриншоты рабочего стола Alar Общие вопросы Delphi 0 29.10.2006 10:59