Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обои в винде [D7, WinXP]


NightLord ©   (2005-08-11 18:24:00) 

Всем привет. Эт опять я. Немогу понять в чем проблема. Ставлю обои на рабочий стол так:
var str:TFileName;

SystemParametersInfo(SPI_SETDESKWALLPAPER,0,PChar(str),SPIF_updateinifile);
SendMessage(FindWindow('Progman','Program Manager'),WM_COMMAND,$A065,0);

Все прекрасно! Обои ставятся, но после использования игр (практически всех), обои исчезают! неподскажите что еще надо сделать?


NightLord   (2005-08-11 19:49:00) [1]

Всем спасибо за участие, я уже нашел. Кому интерестно вот код:

program wallpapr;
uses Registry, WinProcs;
procedure SetWallpaper(sWallpaperBMPPath : String; bTile : boolean );
var
 reg : TRegIniFile;
begin
// Изменяем ключи реестра
// HKEY_CURRENT_USER
//  Control Panel\Desktop
//    TileWallpaper (REG_SZ)
//    Wallpaper (REG_SZ)
 reg := TRegIniFile.Create('Control Panel\Desktop' );
 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;
begin
// пример установки WallPaper по центру рабочего стола
SetWallpaper('c:\winnt\winnt.bmp', False );
end.


NightLord   (2005-08-11 19:38:00) [2]

Я конечно в реестрах не силен поэтому я незнаю или метод не помог или я что-то не так сделал:
procedure TForm1.Button1Click(Sender: TObject);
var
 Registry: TRegistry;
begin
 Registry := TRegistry.Create;
 Registry.RootKey := HKEY_CURRENT_USER;
 Registry.OpenKey('Control Panel\Desktop',true);
 Registry.WriteString('Wallpaper','E:\Progi\Îêîííûé ìåíåäæåð\image');
 Registry.CloseKey;
 Registry.Free;
end;


Eraser   (2005-08-11 18:34:00) [3]

NightLord ©   (11.08.05 18:24)

Попробуй ещё в реестре прописать в ключ HKEY_CURRENT_USER\Control Panel\Desktop параметр Wallpaper путь к файлу.


Наверх

Титульная страница Поиск, карта сайта Написать письмо