Форум: "Основная";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
ВнизСмена картинки на рабочем столе. Найти похожие ветки
← →
quickblack (2004-10-12 22:30) [0]У меня возникла такая проблема. Мне необходимо, чтобы программа меняла картинку на рабочем столе. В реестре HKEY_CURRENT_USER\Control Panel\Desktop я добавляю в параметр Wallpaper путь к моему изображению.
Но эта картинка становится на рабочий стол только после перезагрузки компьютера. А мне нужно, чтобы картинка менялась на рабочем столе при запуске программы.
Может есть другой способ смены изображения на рабочем столе?
← →
Gero © (2004-10-12 22:53) [1]SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE);
← →
quickblack (2004-10-12 23:00) [2]>Gero© Спасибо.
← →
Kolan © (2004-10-12 23:34) [3]Посмотри по форуму недавно функции для работы с desktop скидывал.
А ладно вот еще разprocedure TForm1.ChangeWallpaper(Path:PwideChar);
const
CLSID_ActiveDesktop: TGUID = "{75048700-EF1F-11D0-9888-006097DEACF9}";
var
ActiveDesktop: IActiveDesktop;
begin
if path <> "" then
begin
ActiveDesktop := CreateComObject(CLSID_ActiveDesktop)as IActiveDesktop;
ActiveDesktop.SetWallpaper(path, 0);
ActiveDesktop.ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE);
end
else exit;
end;function TForm1.StringToPWide( sStr: string; var iNewSize: integer ): PWideChar;
var
pw : PWideChar;
iSize : integer;
begin
iSize := Length( sStr ) + 1;
iNewSize := iSize * 2;
pw := AllocMem( iNewSize );
MultiByteToWideChar( CP_ACP, 0, PChar(sStr), iSize, pw, iNewSize );
Result := pw;
end;
ВызовChangeWallpaper(StringToPWide(current_dir+only_file_name,iSize));
Скидываю тк сам с этим долго мучался
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.031 c