Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подмена ресурсов, UpdateResource для всех версий Windows 
:(
    Опции темы
Alex
Дата 20.7.2004, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Цитата(SlaUr @ 20.7.2004, 15:28)
Цитата
Через пару дней этот топик скатится вниз и уйдёт в небытие. Кто-то предлагал идею сделать типа архива исходников или что-то в этом роде. Но заглохло пока.


Вроде бы ведь сделали общий топик "арсенал форумистов" :
http://forum.vingrad.ru/index.php?showtopic=21411

Почему бы не выложить туда?


p.s. У меня лично этот топик показывается в разделе "Важные темы"

Да если ты внимательно почитаешь, арсенал форума то увидишь, что этот топик там самый первый.


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Ilya26
Дата 21.7.2004, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 20.7.2004

Репутация: нет
Всего: нет



alex-co, Желательно бы и запись, и чтение.
(запись в другой exe-файл)
PM MAIL   Вверх
Alex
Дата 21.7.2004, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Обновление:
- Добавлена функция "LoadFileResourceW" - Функция записи файла в ресурсы.
- Добавлена функция "LoadFileResource" - Функция записи файла в ресурсы без задания языка.
- Добавлена функция "SaveFileResourceW" - Функция извлечение файла из ресурсов.
- Добавлена функция "SaveFileResource" - Функция извлечение файла из ресурсов без задания языка.
- Добавлена функция "SaveFileToDiscW" - Сохранение ресурса ввиде файла на диск.
- Добавлена функция "LoadFileToResourceW" - Сохранение ресурса в виде файла на диск.

Адрес загрузки старый

Это сообщение отредактировал(а) Alex - 26.11.2004, 21:01


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Alex
Дата 21.7.2004, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Ilya26 Значит так, для добавления файла в ресурс воспользуйся функцией:
Код
function LoadFileToResourceW(exeFile, type_, name, aFile: PWideChar): BOOL; stdcall;
// Сохранение ресурса в виде файла на диск
// exeFile - Путь к файлу, в ресурсы которого загружается файл файл
// type_   - Тип ресурса (Большими буквами)
// name    - Имя ресурса (Большими буквами)
// aFile   - Путь к файлу, который будет грузиться в ресурс
// LoadFileToResourceW('e:\Temp\Project1.exe', 'JPEG', 'MYJPEG', 'e:\Temp\Untitled-21.jpg')

Для сохранения файла на диск воспользуйся функцией:
Код
function SaveFileToDiscW(exeFile, type_, name, aFile: PWideChar): BOOL; stdcall;
// Сохранение ресурса ввиде файла на диск
// exeFile - Путь к файлу, в котором находиться файл
// type_   - Тип ресурса (Большими буквами)
// name    - Имя ресурса (Большими буквами)
// aFile   - Путь к файлу для сохранения ресурса
// Пример использования:
// SaveFileToDiscW('e:\Temp\Project1.exe', 'JPEG', 'MYJPEG', 'e:\Temp\Untitled-21.jpg')


Для загрузки Jpg файла в Image сделай
Код
procedure LoadJPEGFromRes(Exe, JPEG: string; ThePicture: TPicture);
var
 hExe     : Cardinal;
 Stream: TResourceStream;
 JPEGImage: TJPEGImage;
begin
 hExe:= LoadLibrary(PChar(Exe));
 Stream:= TResourceStream.Create(hExe, JPEG,'JPG');
 JPEGImage:= TJPEGImage.Create;
 try
   JPEGImage.LoadFromStream(MemStream);
   ThePicture.Assign(JPEGImage);
 finally
   JPEGImage.Free;
   Stream.Free;
 end;
end;

Если тебе нужно загрузить из самого себя, то напиши
Код
LoadJPEGFromRes(ParamStr(0), 'MYJPEG', Image1.Picture);

Если тебе нужно загрузить из другого файла
Код
LoadJPEGFromRes('Путь к файлу', 'MYJPEG', Image1.Picture);


Для загрузки Rtf
Код
function LoadRTFFromRes(Exe, RTF: string): AnsiString;
var
 hExe     : Cardinal;
 Stream: TResourceStream;
begin
 hExe:= LoadLibrary(PChar(Exe));
 Stream:= TResourceStream.Create(hExe, RTF, 'RTF');
 try
   SetLength(Result, Stream.Size);
   Stream.Read(Result[1], Length(Result));
 finally
   Stream.Free;
 end;
end;


Это сообщение отредактировал(а) Alex - 26.11.2004, 18:18


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Anderson
Дата 31.8.2004, 18:56 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Подключаю модуль, а у меня выходи ошибка: "Не найден файл acWorkRes.dcu" Где его достать-то?
  Вверх
Alex
Дата 31.8.2004, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Цитата(Anderson @ 31.8.2004, 19:56)
Подключаю модуль, а у меня выходи ошибка: "Не найден файл acWorkRes.dcu" Где его достать-то?

Читаем самое первое сообщение в этой теме


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Alex
Дата 26.11.2004, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



 Обновление:
- Были сделаны все изменения, которые сделал разработчик madRes в версии 1.0h.

Адрес загрузки старый  

Это сообщение отредактировал(а) Alex - 17.2.2007, 09:18


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Budy
Дата 3.7.2005, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 616
Регистрация: 6.2.2004
Где: Екатеринбург

Репутация: 1
Всего: 2



Alex, рулишь, чувак!
Пользуюсь твоей процей LoadFileToResourceW, а вот объясни как теперь удалить лишние... smile


--------------------
Как ты назовешь свой корабль, так на нем и напишут
user posted image
PM MAIL WWW ICQ   Вверх
Alex
Дата 3.7.2005, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Цитата(Budy @ 3.7.2005, 16:16)
Alex, рулишь, чувак!
Пользуюсь твоей процей LoadFileToResourceW, а вот объясни как теперь удалить лишние...

Если без понтов и четко объяснишь, что тебе нужно, то может и помогу...


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Budy
Дата 4.7.2005, 06:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 616
Регистрация: 6.2.2004
Где: Екатеринбург

Репутация: 1
Всего: 2



Alex, да какие понты, просто настроение было норм.
Короче, спасибо тебе за столь удобный в использовании модуль, вот.
Дело вот в чем: допустим в ресурсе (.exe) уже имеется какой-нить файл-ресурс, и мне его надо удалить.
И еще вопрос, как можно узнать весь список файлов-ресурсов в ресурсе.
ЗЫ.Ну каламбур, ресурс в ресурсе smile


--------------------
Как ты назовешь свой корабль, так на нем и напишут
user posted image
PM MAIL WWW ICQ   Вверх
Alex
Дата 4.7.2005, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Писал на вскидку, без проверки:

Код
function DeleteResourceW(exeFile, type_, name: PWideChar; language: word): BOOL; stdcall;
// Eдаление ресурса
// exeFile - Путь к файлу, из ресурсов которого удаляется файл
// type_   - Тип ресурса (Большими буквами)
// name    - Имя ресурса (Большими буквами)
var
  hUpdateRes: THandle;
begin
  Result:= False;
  hUpdateRes:= BeginUpdateResourceW(exeFile, False);
  if hUpdateRes <> 0 then if UpdateResourceW(hUpdateRes, type_, name, language, nil, nil) then
    Result:= EndUpdateResourceW(hUpdateRes, False);
end;


Смысл в том, что если функции UpdateResourceW указать нулевой размер данных, то ресурс удаляется


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Budy
Дата 6.7.2005, 06:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 616
Регистрация: 6.2.2004
Где: Екатеринбург

Репутация: 1
Всего: 2



Alex, сэнк. Ну вот пора бы и обновить версию smile


--------------------
Как ты назовешь свой корабль, так на нем и напишут
user posted image
PM MAIL WWW ICQ   Вверх
Budy
Дата 11.8.2005, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 616
Регистрация: 6.2.2004
Где: Екатеринбург

Репутация: 1
Всего: 2



А как узнать весь список всех ресурсов в файле?


--------------------
Как ты назовешь свой корабль, так на нем и напишут
user posted image
PM MAIL WWW ICQ   Вверх
Kondragor
Дата 14.9.2005, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 1.11.2004

Репутация: нет
Всего: нет



У меня почему-то перестал работать модуль. Просто ни с того, ни с сего взял и перестал. Когда это произошло не знаю так как заметил не сразу, поэтому и сказать из-за чего это произошло не могу. Переставлял Delphi7, пробовал с чистой, без других компонентов, Delphi в чистом проекте все равно не работает. Просил друга - у него все пашет. Что и делать не знаю - пользовался одной единственной функцией SaveIconToDiscW, но она очень нужна для программы. Возможно кто-нибудь знает из-за чего это может происходить или хотя бы подскажите плиз альтернативный способ извлечения иконки из exe,dll и сохранение ее на диск, хотя бы 16*16 но не меньше 32bit?
PM MAIL   Вверх
Alex
Дата 14.9.2005, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Подготовь демо проект, в который включи exe или dll, из которого ты пытаешься вытащить ресурс.


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Страницы: (4) Все 1 [2] 3 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1000 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.