Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2009, 21:51   #1
Rekcilf
Новичок
Джуниор
 
Регистрация: 23.06.2009
Сообщений: 2
По умолчанию Использование картинок (.bmp) из ресурсов

У меня возникла такая проблема: я хочу написать программку, которая заменяет изображение на рабочем столе на другое, использую функцию
SystemParametersInfo(SPI_SETDESKWAL LPAPER, 0, <путь к картинке>, SPIF_UPDATEINIFILE);
Так вот проблема в том, что нужно указать путь к картинке, а я хочу использовать изображение, определенное в ресурсах (чтобы вся программа была в одном .exe файле), не подскажите как это сделать?
И еще можно ли использовать в ресурсах картинки в jpg, а то размер bmp в 3мб как-то не очень приятен
Rekcilf вне форума Ответить с цитированием
Старый 23.06.2009, 22:48   #2
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

может лучше файл из ресурсов сохранить во временной папке, а потом установить фон из нее?
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 23.06.2009, 23:51   #3
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,454
По умолчанию

Цитата:
Сообщение от Rekcilf Посмотреть сообщение
У меня возникла такая проблема: я хочу написать программку, которая заменяет изображение на рабочем столе на другое, использую функцию
SystemParametersInfo(SPI_SETDESKWAL LPAPER, 0, <путь к картинке>, SPIF_UPDATEINIFILE);
Так вот проблема в том, что нужно указать путь к картинке, а я хочу использовать изображение, определенное в ресурсах (чтобы вся программа была в одном .exe файле), не подскажите как это сделать?
И еще можно ли использовать в ресурсах картинки в jpg, а то размер bmp в 3мб как-то не очень приятен
тебе надо сначало создать *.RC в любом блокноте и написать там

Код:
1 Image  "путь к картинке под цифрой 1"
2 Image  "путь к картинке под цифрой 2"
3 Image  "путь к картинке под цифрой 3"
......
100 Image  "путь к картинке под цифрой 100"

image - тип
1 -       индекс картинки
и после этого сохратить с расширением *.rc. Потом этот *.rc файл надо скомпилить следующими прогами типа ResourceHacker, Restorator или в делфи через консоль BRCC32.exe (пример BDCC32.exe my.rc) !
после этого появится файл с таким же именем но с расширением *.res
вот иго то мы и прикрутим к проекту следующей строчкой
{$R ResName.RES} где ResName - имя получившегося файла *.res.

пример:
Код:
Unit Unit1;

{$R ResName.RES}

interface
А вот уже функция извлечения ресурсов(в данном теме файлов JPEG)!
Код:
function ExtractRes(ResType, ResName, ResNewName: string): Boolean;
var 
 Res: TResourceStream; 
 begin 
 Result := False;
 Res := TResourceStream.Create(Hinstance, Resname, PChar(ResType));
try 
 Res.SavetoFile(ResNewName); 
 Result := True; 
finally 
 Res.Free;
end; 
end;
пример использования:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
 NFile: string;
begin 
 NFile:= ExtraxtFilePath(paramStr(0))+ '\wallparer.jpg';
 if ExtractRes('Image', '1', NFile) then  //сохранит картинку под индексом 1
 if FileExists(NFile) then // проверит если картинка сохранилась то далше
 SystemParametersInfo(SPI_SETDESKWAL LPAPER, 0, Fname, SPIF_UPDATEINIFILE);
end;
А лучше напрямую из реестра менять!

Цитата:
Сообщение от Goodwin98 Посмотреть сообщение
может лучше файл из ресурсов сохранить во временной папке, а потом установить фон из нее?
понятно что надо будет сохранять, но не во-временный а просто сохранить в директорию с прогой или в какую нить еще, если не хочешь чтоб после перезагрузки компа фоновой картинки не было ))).

Весы с лева =)

Последний раз редактировалось uberchel; 23.06.2009 в 23:54.
uberchel вне форума Ответить с цитированием
Старый 24.06.2009, 00:31   #4
Rekcilf
Новичок
Джуниор
 
Регистрация: 23.06.2009
Сообщений: 2
По умолчанию

Спасибо за помощь !
Rekcilf вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
файл ресурсов Rozalinda Общие вопросы Delphi 3 20.10.2008 20:31
Файлы ресурсов Черничный Общие вопросы Delphi 1 14.07.2008 05:49
Фаил ресурсов Лёка Общие вопросы Delphi 13 14.05.2008 18:08
bmp и paintbox, использование шрифта? PONKA Общие вопросы Delphi 10 14.05.2008 16:47
Файл ресурсов Stanislav Общие вопросы Delphi 11 21.11.2007 08:27