ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Чтобы рисунок на рабочий стол сам ставился (https://forum.antichat.xyz/showthread.php?t=61565)

krypt3r 12.02.2008 09:53

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

SystemParametersInfo (SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE)
Вот еще способ
Код:

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;


Jes 12.02.2008 14:14

Может тебе нада просто запретить юзеру менять обои ?

HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Policies\ActiveDesktop
> NoChangingWallpaper

или
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Policies\System

> NoDispCPL
> NoDispBackgroundPage

Tapaceuka 12.02.2008 19:58

напишите плз кто нить исходник, а т я пробовал и умну невыходит чёто((

De-visible 13.02.2008 08:45

Код:

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...
--
Код:

uses
  windows;
var
  s: string;
begin
  s := paramStr(1);
  SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, @S[1],
    SPIF_UPDATEINIFILE OR SPIF_SENDWININICHANGE);

------------------
можно так....


Время: 06:21