Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.21;
Скачать: CL | DM;

Вниз

Как заменить ресурс?   Найти похожие ветки 

 
Dot   (2004-10-08 23:12) [0]

Мастера! Есть фпйл 1.ехе в нем содержится картинка/иконка/итд в виде ресурса.
У меня есть 1.bmp допустим или что нить еще.
Как мне программно заменить картинку в фале на 1.bmp ?????
файл не мой и не я его создавал .


 
cerber1 ©   (2004-10-09 13:45) [1]

Bспользуй Resource Hacker и не мучайся. А если програмно, то в хелпе к Resource Hacker описано как это делать.


 
Okcid   (2004-10-09 17:28) [2]


> cerber1 ©   (09.10.04 13:45) [1]

ResHack конечно хорошо, но хелп(во всяком случае в моей версии) там на англицком...


 
Dot   (2004-10-09 23:22) [3]

Нет что значит воспользуйся РеСХАкером, это не ответ, если не знаешь то не отвечай пожалуйста.


 
Anti   (2004-10-11 21:52) [4]

Мастера а что поправде нет ниче? ато тоже ищу как бы?


 
Fay ©   (2004-10-11 22:02) [5]

Вы что, издеваетесь? MSDN у нас для кого?
Только не надо говорить, "там на англицком" - янки на Си не балакают.


 
Fay ©   (2004-10-11 22:03) [6]

Сам проверять не буду - есть другие дела.
HRSRC hResLoad;     // handle to loaded resource
HANDLE hExe;        // handle to existing .EXE file
HRSRC hRes;         // handle/ptr. to res. info. in hExe
HANDLE hUpdateRes;  // update resource handle
char *lpResLock;    // pointer to resource data
BOOL result;
// Load the .EXE file that contains the dialog box you want to copy.
hExe = LoadLibrary("hand.exe");
if (hExe == NULL)
{
   ErrorHandler("Could not load exe.");
}

// Locate the dialog box resource in the .EXE file.
hRes = FindResource(hExe, "AboutBox", RT_DIALOG);
if (hRes == NULL)
{
   ErrorHandler("Could not locate dialog box.");
}

// Load the dialog box into global memory.
hResLoad = LoadResource(hExe, hRes);
if (hResLoad == NULL)
{
   ErrorHandler("Could not load dialog box.");
}

// Lock the dialog box into global memory.
lpResLock = LockResource(hResLoad);
if (lpResLock == NULL)
{
   ErrorHandler("Could not lock dialog box.");
}

// Open the file to which you want to add the dialog box resource.
hUpdateRes = BeginUpdateResource("foot.exe", FALSE);
if (hUpdateRes == NULL)
{
   ErrorHandler("Could not open file for writing.");
}

// Add the dialog box resource to the update list.
result = UpdateResource(hUpdateRes,       // update resource handle
    RT_DIALOG,                   // change dialog box resource
    "AboutBox",                  // dialog box name
    MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),  // neutral language
    lpResLock,                   // ptr to resource info
    SizeofResource(hExe, hRes)); // size of resource info.
if (result == FALSE)
{
   ErrorHandler("Could not add resource.");
}

// Write changes to FOOT.EXE and then close it.
if (!EndUpdateResource(hUpdateRes, FALSE))
{
   ErrorHandler("Could not write changes to file.");
}

// Clean up.
if (!FreeLibrary(hExe))
{
   ErrorHandler("Could not free executable.");
}


 
Nick Denry ©   (2004-10-12 00:00) [7]

Сам проверять не буду - есть другие дела

Работает.


 
cerber1 ©   (2004-10-12 00:13) [8]

Есть два вариента решения твоей "проблемы":
1 через формат РЕ файлов
2 Через функции АПИ:
BeginUpdateResource...
UpdateResource...

но если ты не знаешь точного неазвания ресурса в проге, то тебе надо его найти, выдрать и заменить, а это уже больше функций АПИ:
EnumResourceName
enumResourceType... и.т.д

2 Fay
ResHacker поддерживает режим замены через скрипт, а это проще чем размалеввывать толпу callback-функций и потом рыться в их содержимом. А MSDN - это всегда успеешь.


 
Fay ©   (2004-10-12 03:11) [9]


> А MSDN - это всегда успеешь.

MSDN - рано не бывает 8)



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

Текущий архив: 2004.11.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
1-1099939597
lomman
2004-11-08 21:46
2004.11.21
TWebBrowser


1-1099862330
Metrolog
2004-11-08 00:18
2004.11.21
Распознавание выражений


1-1099984033
КиТаЯц
2004-11-09 10:07
2004.11.21
Excel + Delphi задание формата ячейкам


14-1099032056
MBo
2004-10-29 10:40
2004.11.21
Пятничная разминка. Задачки попроще и сложные.


1-1099547174
diabolik_krsk
2004-11-04 08:46
2004.11.21
Автоматический переход фокуса с TEdit на TEdit