Форум: "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