Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1213601443
кот
2008-06-16 11:30
2008.07.13
Библиотека с использованием DataModule


3-1201969179
Lamer666
2008-02-02 19:19
2008.07.13
Записи ADOQuery


9-1172164655
foton
2007-02-22 20:17
2008.07.13
Быстрая загрузка сцены


15-1211783198
БарЛог
2008-05-26 10:26
2008.07.13
FTP в новом эксплорере отображается списком (буквами)


15-1211944984
Скарлет
2008-05-28 07:23
2008.07.13
От чего зависит автоматическое вставляние в uses нужных юнитов?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский