|
1452 / 360 / 61
Регистрация: 03.04.2010
Сообщений: 2,096
|
||||||
Смена обоев рабочего стола.07.02.2011, 18:16. Показов 9202. Ответов 5
Метки нет (Все метки)
Добрый день! Я меняю например картинку на рабочем столе вот этим способом.
1
|
||||||
| 07.02.2011, 18:16 | |
|
Ответы с готовыми решениями:
5
Программная смена обоев рабочего стола...
|
|
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
|
|
| 07.02.2011, 18:21 | |
|
Смотри
программно сменить картинку на рабочем столе.
06 сен 2001 (четверг), 09:36:30 захотел программно сменить картинку на рабочем столе. Обои т.е... я залез в реестр изменил нужную строку. Все нормально. в реестре изменилось. Но сам виндовс не обновился. Т.е картинка не сменилась. Потом, когда я запускаю какуюнить игру, она меняется. А так нет. Как мне обновить виндовс? перерисовать чтоли. Ответить. Ответ 1: Вот так: Procedure TForm1.FormCreate(SEnder: TObject); var St : string; Begin St := 'C:\MyWallPaper.Bmp'; SystemParametersInfo(SPI_SETDESKWALLPAPE R,UINT(St),nil,SPIF_SEndCHANGE); End; Ответ 2: Попробуй покапаться с АПИ - SystemParametersInfo или вот тебе компонент: unit Walpaper; interface uses {$IFDEF WIN32} Windows, RegisTry, {$Else} WinTypes, WinProcs, IniFiles, {$EndIF} Classes, Controls, SysUtils; Type TWallPaper = class(TComponent) Private PC: Array[0..$FF] of Char; {$IFDEF WIN32} Reg: TRegisTry; {$Else} Reg: TIniFile; WinIniPath: string; {$EndIF} Function GetWallpaper: string; Procedure SetWallpaper(Value: string); Function GetTile: Boolean; Procedure SetTile(Value: Boolean); Function GetStretch: Boolean; Procedure SetStretch(Value: Boolean); protected {$IFNDEF WIN32} Constructor Create(aOwner: TComponent); override; {$EndIF} Public published Property Wallpaper: string read GetWallpaper write SetWallpaper; Property Tile: Boolean read GetTile write SetTile; Property Stretch: Boolean read GetStretch write SetStretch; End; Procedure Register; implementation {$IFNDEF WIN32} Constructor TWallpaper.Create(aOwner: TComponent); Begin inherited Create(aOwner); GetWindowsDirectory(PC, $FF); WinIniPath := StrPas(PC) + '\WIN.INI'; End; {$EndIF} Function TWallpaper.GetWallpaper: string; Begin {$IFDEF WIN32} Reg := TRegisTry.Create; Reg.RootKey := HKEY_CURRENT_USER; Reg.OpenKey('\Control Panel\desktop\', False); Result := Reg.Readstring('Wallpaper'); Reg.Free; {$Else} Reg := TIniFile.Create(WinIniPath); Result := Reg.Readstring('Desktop', 'Wallpaper', ''); Reg.Free; {$EndIF} End; Procedure TWallpaper.SetWallpaper(Value: string); Begin If not (csDesigning in ComponentState) and not (csLoading in ComponentState) and not (csReading in ComponentState) Then Begin StrPCopy(PC, Value); SystemParametersInfo(spi_SetDeskWallpape r, 0, @PC, spif_UpdateIniFile); End; End; Function TWallpaper.GetTile: Boolean; Begin {$IFDEF WIN32} Reg := TRegisTry.Create; Reg.RootKey := HKEY_CURRENT_USER; Reg.OpenKey('\Control Panel\desktop\', False); Result := Boolean(StrToInt(Reg.Readstring('TileWal lpaper'))); Reg.Free; {$Else} Reg := TIniFile.Create(WinIniPath); Result := Reg.ReadBool('Desktop', 'TileWallpaper', False); Reg.Free; {$EndIF} End; Procedure TWallpaper.SetTile(Value: Boolean); Begin If not (csDesigning in ComponentState) and not (csLoading in ComponentState) and not (csReading in ComponentState) Then Begin {$IFDEF WIN32} Reg := TRegisTry.Create; Reg.RootKey := HKEY_CURRENT_USER; Reg.OpenKey('\Control Panel\desktop\', False); Reg.Writestring('TileWallpaper', IntToStr(Integer(Value))); Reg.Free; {$Else} Reg := TIniFile.Create(WinIniPath); Reg.WriteBool('Desktop', 'TileWallpaper', Value); Reg.Free; {$EndIF} SetWallpaper(Wallpaper); End; End; Function TWallpaper.GetStretch: Boolean; var i: Integer; Begin {$IFDEF WIN32} Reg := TRegisTry.Create; Try Reg.RootKey := HKEY_CURRENT_USER; Reg.OpenKey('\Control Panel\desktop\', False); i := StrToInt(Reg.Readstring('WallpaperStyle' )); Except End; Reg.Free; {$Else} Reg := TIniFile.Create(WinIniPath); i := Reg.ReadInteger('Desktop', 'WallpaperStyle', 0); Reg.Free; {$EndIF} Result := i = 2; End; Procedure TWallpaper.SetStretch(Value: Boolean); var v: Integer; Begin If not (csDesigning in ComponentState) and not (csLoading in ComponentState) and not (csReading in ComponentState) Then Begin If Value Then v := 2 Else v := 0; {$IFDEF WIN32} Reg := TRegisTry.Create; Reg.RootKey := HKEY_CURRENT_USER; Reg.OpenKey('\Control Panel\desktop\', False); Reg.Writestring('WallpaperStyle', IntToStr(v)); Reg.Free; {$Else} Reg := TIniFile.Create(WinIniPath); Reg.WriteInteger('Desktop', 'WallpaperStyle', v); Reg.Free; {$EndIF} SetWallpaper(Wallpaper); End; End; Procedure Register; Begin RegisterComponents('JohnUtilEnd; End. Ответ 3: WinAPI: BOOL SystemParametersInfo( UINT uiAction, // system parameter to query or set UINT uiParam, // depEnds on action to be taken PVOID pvParam, // depEnds on action to be taken UINT fWinIni // user profile update flag ); uiAction := SPI_SETDESKWALLPAPER Sets the desktop wallpaper. pvParam := 'Имя BMP файла'#0 uiParam := 0 fWinIni := SPIF_UPDATEINIFILE Ответ 4: Программка смены обоев на рабочем столе. Имя файла с картинкой передается через параметр. Текст файла change.dpr: {-- change.dpr --} program change; uses windows; var s: string; Begin s := paramStr(1); SystemParametersInfo(SPI_SETDESKWALLPAPE R, 0, @S[1], SPIF_UPDATEINIFILE OR SPIF_SEndWININICHANGE); End. {-- End of change.dpr --} Запускаешь: change.exe "имя файла с картинкой" Источник
1
|
|
|
1452 / 360 / 61
Регистрация: 03.04.2010
Сообщений: 2,096
|
|
| 07.02.2011, 18:28 [ТС] | |
|
iama, Простите, Вы меня наверное не так поняли. Наверное я не правильно изложился
. Короче менять картинку я могу, но просто мне не очень по душе то что он ее растягивает, а мне нужно поместить изображение в центре экрана и не изменять размер
0
|
|
|
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
|
||||||
| 07.02.2011, 18:38 | ||||||
|
да всё я правильно понял, там есть процедурки SetTile и SetStretch, которые замощают или растягивают фон, тоисть "по центру" я не кинул, сейчас кину
Добавлено через 2 минуты вот кусок на дельфи
2
|
||||||
|
1452 / 360 / 61
Регистрация: 03.04.2010
Сообщений: 2,096
|
|
| 07.02.2011, 19:22 [ТС] | |
|
iama, Спасибо большое! Разберусь.
![]() Перевести думаю не составит большой проблемы, главное основа есть. Еще раз большое спасибо.
0
|
|
|
4 / 3 / 2
Регистрация: 20.01.2018
Сообщений: 71
|
|
| 15.07.2019, 16:53 | |
|
0
|
|
| 15.07.2019, 16:53 | |
|
Помогаю со студенческими работами здесь
6
Заставка рабочего стола Замена рабочего стола Заставка рабочего стола Изменение изображения рабочего стола Блокировка рабочего стола и меню пуск Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|