Форум: "Начинающим";
Текущий архив: 2008.07.13;
Скачать: [xml.tar.bz2];
ВнизРесурсы в EXE-файле - Иконка Найти похожие ветки
← →
TForumHelp © (2008-06-15 11:07) [0]Здраствуйте.
Помогите пожалуйста программно изменить иконку exe-файла. я написал функцию:Function PutStreamToResource(vFileName : String; vResName : String; var vStream : TMemoryStream; vlpType : PAnsiChar = RT_EXEFILE; vLang : Integer = 1049) : Boolean;
Function PutStreamToResource(vFileName : String; vResName : String; var vStream : TMemoryStream; vlpType : PAnsiChar = RT_EXEFILE; vLang : Integer = 1049) : Boolean;
var
vHrs : DWORD;
vRes : TResourceStream;
begin
Result := True;
try
vResName := UpperCase(vResName);
vHrs := BeginUpdateResource(PChar(vFileName), false);
UpdateResource(vHrs, vlpType, PChar(vResName), vLang, vStream.Memory, vStream.Size);
EndUpdateResource(vHrs, false);
except
Result := False;
exit;
end;
end;
использовал в качестве vlpType и RT_ICON и RT_GROUPICON (кажется так - уже не помню :( ), но ничего не выходит. Помогите пожалуйста - очень нужно. Иконка может быть любого размера, а также может быть многостраничной.
← →
Дмитрий С (2008-06-15 11:24) [1]
> ничего не выходит
что именно?
← →
TForumHelp © (2008-06-15 11:45) [2]
> что именно?
ресурс заменяется, но иконка нет. На месте иконки просто нулевой ресурс.
← →
Renegat (2008-06-15 11:52) [3]А вы часом не в своей же работающей программе это заменять собрались? Если да, то стоит не менять сам файл, а создать его копию а только потом её апдейтить (это наиболее простой способ. Пляски с бубном вокруг таблиц хендлов, DMA и унмапа из памяти не рассматриваем), так как винда тупо не даст записать что-либо в исполнимый файл, чей образ висит в памяти.
← →
TForumHelp © (2008-06-15 11:53) [4]
> винда тупо не даст записать что-либо в исполнимый файл
я работаю с "чужим" файлом.
← →
sniknik © (2008-06-15 15:34) [5]
> UpdateResource ...
If the function fails, the return value is zero. To get extended error information, call GetLastError.
или Win32Check + F1.
← →
TForumHelp © (2008-06-15 20:02) [6]через
try except
прогнал - ошибок не было.GetLastError
- тоже ничего не вернула. Может иконка должна быть определенного формата? я исп. 32-битную 32х32 пикселя.
ЗЫ:RT_ICON
иRT_GROUP_ICON
- посмотрел точнее.
← →
sniknik © (2008-06-16 00:03) [7]> через try except прогнал - ошибок не было
для виндовых функций не действует. читай хелп по этой функции там написано что и как она возвращает в случае ошибки.
> GetLastError - тоже ничего не вернула.
ну значит у тебя все хорошо, все правильно работает... и не морочь нам тут голову.
кстати, информация к размышлению... GetLastError не может ничего не вернуть, она возвращает чтото (ok) даже если ничего не произошло.
опять мозг пудришь?
← →
Германн © (2008-06-16 01:39) [8]
> TForumHelp © (15.06.08 11:45) [2]
>
>
> > что именно?
>
>
> ресурс заменяется, но иконка нет. На месте иконки просто
> нулевой ресурс.
>
Переведи на русский так, как ты это понимаешь.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.07.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c