ПРОГРАММ: 654 | СТАТЕЙ: 125 | КОДОВ: 3434   

    главная        новости        программы        библиотека        коды        рейтинг       форум   

Афоризм
Он "Девушка, а вы замужем?" Она, смутившись "Hет, я просто не накрашена"
 
Поиск


 
Рассылка
| Soft-Ежедневник - обзор программ прямо к Вам на e-mail
 
 
Полезное!
 
7 лучших
  «ПромИнСтрой» - изготовление металлоконструкций в Ростове-на-Дону
  Онлайн юрист Новосибирска
  Московский медицинский центр
  Мебельная компания Инсайд
  Мелкий ремонт
  
  
 
  Библиотека > программирование > Delphiдобавить статью
Устанавливаем свой WallPaper для Windows средствами Delphi

В этой статье мы рассмотрим вопрос о том, как средствами Delphi можно поменять обои на рабочем столе...
 
delphid.dax.ru
winsov.ru
10-05-2004
Версия для печати
печать

В этой статье мы рассмотрим вопрос о том, как средствами Delphi можно поменять обои на рабочем столе. Информацию о картинке, которая находится на рабочем столе, конечно же, можно найти в реестре! Она находится в ключе HKEY_CURRENT_USER, а добраться до нее можно по такому пути:

HKEY_CURRENT_USERControl PanelDesktop

А параметр, содержащий название картинки, носит имя "wallpaper". То есть для того, чтобы сменить обои нам надо изменить значение параметра "wallpaper" и оповестить систему о том, что мы внесли изменения в реестр.

Итак, приступим, для работы нам понадобятся два дополнительных модуля: Registry.pas и WinProcs.pas, которые надо обязательно подключить в раздел uses Вашей программы. Нам потребуется всего одна кнопка, по нажатию на которую у нас будут меняться обои на Рабочем столе.

Для наглядности привожу полный код приложения, которое получилось у меня:


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Registry, WinProcs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure SetWallpaper(sWallpaperBMPPath : String; bTile : boolean );
var reg : TRegIniFile;
begin
// Изменяем ключи реестра
// HKEY_CURRENT_USER
// Control PanelDesktop
// TileWallpaper (REG_SZ)
// Wallpaper (REG_SZ)
reg := TRegIniFile.Create("Control PanelDesktop" );
with reg do begin
WriteString( "", "Wallpaper", sWallpaperBMPPath );
if( bTile )then begin
WriteString("", "TileWallpaper", "1" );
end
else begin
WriteString("", "TileWallpaper", "0" );
end;
end;
reg.Free;
// Оповещаем всех о том, что мы
// изменили системные настройки
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, Nil, SPIF_SENDWININICHANGE );
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
SetWallpaper("c:windows1stboot.bmp", False );
end;

end.

Но надо помнить что этот код будет действовать только при отключенном ActiveDesctop. Если же он у Вас включен или Вы хотите установить на Рабочий Стол картинку в формате .JPG или .GIF, то Вам потребуется использовать код, приведенный ниже

uses
ComObj,  ShlObj;

procedure ChangeActiveWallpaper;
const
CLSID_ActiveDesktop: TGUID = "{75048700-EF1F-11D0-9888-006097DEACF9}"; 

var
ActiveDesktop: IActiveDesktop; 

begin
ActiveDesktop := CreateComObject(CLSID_ActiveDesktop) as IActiveDesktop; ActiveDesktop.SetWallpaper("c:windowsforest.bmp",0); 

ActiveDesktop.ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE); 

end;

 Ну вот вроде бы и все, используйте на здоровье!..




Комментарии
Оставить комментарий

Demon | 10-01-08 15:05
Текст неверен.
"{75048700-EF1F-11D0-9888-006097DEACF9}"
надо ставить одинарные кавычки. Также компилятор ругается на отсутсвие вызова CoInitializte

Имя:
E-mail:
Сообщение:


Число:

   очистить

популярные статьи по теменовые статьи
Создание видео из фотографий в программе "ФотоШОУ"
Разное / Обработка фото и видео
Больница для компьютера
железо / Система
Чем так популярны социальные сети?
Разное / разное
Синхронизация данных с сотового телефона на ПК
железо / Мобильные устройства
Куплю хостинг
web - разработка / Хостинг

Опрос
На что Вы обращаете внимание в первую очередь при покупке товара в интернет-магазине?  
 
Комментарии и оценку пользователей
Наличие нескольких фотографий
Подробное и качественное описание
Условия доставки
Возможность покупки в кредит
 
Самое свежее  
 ПРОГРАММЫ

ICQ 8.0.5990
ICQ 8.0.5990

Mozilla Firefox 18.0.2
Mozilla Firefox 18.0.2

ArtMoney 7.40.4
ArtMoney 7.40.4

 НОВОСТИ

Хакерская атака на Google из Китая
Хакерская атака на Google из Китая

Мы победили! Олимпиада 2014 пройдет в Сочи
Мы победили! Олимпиада 2014 пройдет в Сочи

 БИБЛИОТЕКА

Создание видео из фотографий в программе "ФотоШОУ"
Создание видео из фотографий в программе "ФотоШОУ"

Больница для компьютера

 
Рекомендую!



Rambler's Top100

Copyright © 2004-2018 MostInfo.net  | связь с админом
При использовании материалов сайта ссылка на MostInfo обязательна.