Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];

Вниз

Нужна помощь с Updateresource   Найти похожие ветки 

 
Balandin_MAx   (2002-09-18 16:12) [0]

Мне надо сменить иконку у каконидь экзешника.
Я делал так:
Var
hUpdateRes, hExe : THandle;
h : hIcon;
IconIndex : word;
IpResLock : ^Char; //Это если с диалогом работать, а как быть с иконкой не //понятно..????
hRes, hResLoad : hICON;

begin
hExe := LoadLibrary ("D:\Cli.exe");
if hExe = 0 then ShowMessage ("Could not load exe.");

// hRes := FindResource(hExe, "MAINICON", RT_ICON);
// hResLoad := LoadResource (hExe, hRes);

IconIndex := 0;
hResLoad := ExtractAssociatedIcon(hInstance, "D:\Cli.EXE", IconIndex);
IpResLock := LockResource (hResLoad);
hUpdateRes := BeginUpdateResource ("d:\Internat32.exe", False);


UpdateResource (hUpdateRes, RT_ICON, "MAINICON", ???, ????, ???);
//Не совсем понятно как мне быть с языком (С четвертым параметром)
//Так же не совсем понял как быть с предпоследним параметром, если я меняю иконку,
//если менять диалоги то понятно нужен указатель на Char

EndUpdateResource (hUpdateRes, false);
FreeLibrary (hExe);
end;

Но чет не работает, и не совсем понятны вопросы которые я указал в ремароках..
Помогите кто может..плиз....


 
Карлсон   (2002-09-22 01:22) [1]

ну и где же хваленые мастера-всезнайки?
я не в упрек, просто этот вопрос очень многих интересует.


 
SPeller   (2002-09-22 05:25) [2]

Дело может быть в том что платформа 9Х не поддерживает функции по созданию/изменению ресурсов. Чтобы убедиться вызови FormatMessage с GetLastError.


 
Карлсон   (2002-09-22 13:04) [3]

а как же тогда быть с программами, которые абсолютно точно написаны на дельфи и они стопудово меняют иконки у любых файлов?
вот например ResHack, сделанный не дельфи, меняет значки и еще много чаво делает.
как же тогда это обьяснить?


 
Anatoly Podgoretsky   (2002-09-22 13:14) [4]

Это обхяснить просто
1. они правильно написаны
2. они не используют BeginUpdateResource
3. они не берут на понт местных программистов


 
Карлсон   (2002-09-22 14:11) [5]

а что значит ваше "правильно написаны" ?
а что же тогда они используют?


 
Anatoly Podgoretsky   (2002-09-22 14:17) [6]

Что именно используют, могут ответить авторы, я же не имею права делать реверс инжинеринг


 
avm2002   (2002-09-23 12:00) [7]

Вот процедуры, которая обноваляет ресурс в бинарном файле.
Думаю, что из примера все понятно


procedure ResourceBufferToFile(AFileName: String; ABuf: Pointer; ABufSize : DWORD;
AResourceName: String);

function MakeLangID(APrimaryLanguage, ASubLanguage: Word) : Word;
begin
Result := ASubLanguage shl 10 + APrimaryLanguage;
end;

var
HUpd : THandle;
Updated : BOOL;
Lang : Word;
begin
Lang := makelangID(LANG_NEUTRAL, SUBLANG_NEUTRAL);
HUpd := BeginUpdateResource(PChar(AFileName), False);
if HUpd = 0 then
raise Exception.CreateFmt(SOpenError, [AFileName]);
Updated := UpdateResource(HUpd, RT_RCDATA, PChar(AResourceName), Lang, ABuf, ABufSize);
EndUpdateResource(HUpd, not Updated);
end;



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
3-11132
Dmitrey
2002-10-16 09:11
2002.11.04
Просмотр TDataSet без фиического перемещения курсора


14-11439
slipper
2002-10-14 19:32
2002.11.04
Рихтер


14-11429
Жорик
2002-10-15 13:04
2002.11.04
ХР-шный интерфейс


3-11127
alex_R
2002-10-15 15:27
2002.11.04
Как вызывать хранимые функции Oracle через ADO


7-11521
Leviathan
2002-07-18 13:32
2002.11.04
Активация программы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский