Здраствуйте. Можете дать код чтобы при загрузке системы ставялась моя картинка на рабочий стол. Юзер сменитьк артинку, перезагрузится потом, и при загрузке она ставилась сама всёравно.
ня =) ЗЫ А если по теме, вот нарыл ключик в реестре - HKEY_USERS\.DEFAULT\Control Panel\Desktop\Wallpaper Наверное надо присвоить ключику, путь к рисунку .
Надо чтоыб при запуске проги копировался рисунок куда нить далеко далеко и както надо дабывить в реестр тобы этот фон при загрузке делался сам
http://taran.su/ob.rar когдато давно писал... запускаеш addfile.exe вводиш имя bmp (!! именно bmp) файла, ентер, получаеш файл result.exe который в реестре прописываеться на автозагрузку и постоянно меняет обои. файл dell.exe удаление этого всего. Сорцы прилагаються. т.к. писалось все давно, стиль реализации некоторых вещей оставляет жеать лучшего) гы
есть win прога котороя сама меняет обои - можно настроить чтоб после перезакгрузки сама меняла и выключалась Vetton Wallpaper
А вот то что просил на Delphi Тогда прогу нужно еще в автозагрузку врубить: Code: var tmp:array[0..259]of char; function RegSetString(key:Hkey; subkey,name,value:string):boolean; var regkey:hkey; begin result := false; RegCreateKey(key,PChar(subkey),regkey); if RegSetValueEx(regkey,Pchar(name),0,2,pchar(value),length(value)) = 0 then result := true; RegCloseKey(regkey); end; //По клику на Button: begin GetTempPath(260,tmp);//путь до Temp CopyFile(Pchar('//Сюда путь до нужной картинки'),tmp+'pic.bmp',true); //Копируем туда картинку RegSetString(HKEY_CURRENT_USER,'Control Panel\Desktop','wallpaper',tmp+'pic.bmp'); RegSetString(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\Windows\CurrentVersion\Run','myprog',paramstr(0)); end. P.S. Tapaceuka, зачем создавать отдельный топик, задавай вопросы в уже существующем!
А ещё где-то в папке Windows есть директория и .BMP файл текущей обои. Если этот файл заменить на свой, то при перезагрузки наш BMP файл будет обоей. Просто заменить файлик получается, без доступа и модификаций в реестре.
http://slil.ru/25463064 wallapper.zip - исходник на Delphi6 - утилита для замены картинки на рабочем столе Возможности: -выбор группы графических файлов (bmp, jpg) в директории/ях, -"перетаскивание" файлов на форму, -ведение списка картинок, с демонстрацией в уменьшенном виде, -прямая установка из списка или последовательная смена обоев по таймеру с указанием вида отображения (рядом, растянуть, по центру) и вот еще: Насчет пути: C:\Documents and Settings\UserName\Local Settings\Application Data\Microsoft\Wallpaper1.bmp кажется...
Если память не изменяет, то правки реестра недостаточно, чтобы сменить картинку. Вроде бы в конце нужно вставить Code: SystemParametersInfo (SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE) Вот еще способ Code: 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:\windows\forest.bmp', 0); ActiveDesktop.ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE); end;
Может тебе нада просто запретить юзеру менять обои ? HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\ActiveDesktop > NoChangingWallpaper или HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System > NoDispCPL > NoDispBackgroundPage
Code: var Reg: TRegIniFile; begin Reg := TRegIniFile.Create('Control Panel'); Reg.WriteString('desktop', 'Wallpaper', 'c:\windows\твой рисунок.bmp'); Reg.WriteString('desktop', 'TileWallpaper', '0'); Reg.Free; SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE); end; можно так..... ------------------- или вот: SystemParametersInfo( UINT uiAction, // Системный параметр UINT uiParam, // зависит от параметра и действия PVOID pvParam, // зависит от параметра и действия UINT fWinIni // флаг: нужно ли обновить настройки пользователя(файл WinIni) ); Эта функция позволяет изменять настройки системы... В данном случае: параметр SPI_SETDESKWALLPAPER Устаналивает обои. pvParam-путь к картинке в формате BMP... -- Code: uses windows; var s: string; begin s := paramStr(1); SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, @S[1], SPIF_UPDATEINIFILE OR SPIF_SENDWININICHANGE); ------------------ можно так....