Форум: "WinAPI";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];
ВнизРабота с ресурсами Найти похожие ветки
← →
apic © (2006-08-17 14:17) [0]Глубоко-уважаемые Мастера!!! Как то давно я уже задавал ятот вопрос но мне на него ни кто не ответил, может быть на этот раз найдется спец в этом деле... Вообщем мне нужно заменить иконку в исполняемом файле. Нигде не могу найти ответ на этот вопрос. Ну как-то же делают это такие программы как Exescop и ей подобные!!!!!!!!!!!!!!!!
← →
Ketmar © (2006-08-17 14:31) [1]> [0] apic © (17.08.06 14:17)
совсем-совсем нигде? и в гугле искал? и в рамблере? и в яндексе? и все партизанят?
UpdateResource().
← →
apic © (2006-08-17 14:41) [2]Знаю, что UpdateResource()., ТОЛЬКО КАК ИМ НАХРЕН ПОЛЬЗОВАТЬСЯ!!! ТАМ ЕЩЕ ХЕРОВА ТУЧА ВСЯКИХ ФУНКЦИЙ ПРИМЕНЯЕТСЯ! И все равно не хрена не работает!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
← →
Ketmar © (2006-08-17 14:53) [3]> [2] apic © (17.08.06 14:41)
рядовой, прекратите истерику! %-)
как-как... хэлп читать. код писать. если тебе готовый код нужен -- так и указывай. а в справке, по-моему, всё достаточно доступно описано...
на что могу подкинуть хинт -- это на то, что информация об иконке и сам битмап иконки хранятся отдельно. это полезно учитывать. но если тебе заменять 2один к одному" (т.е. только вид) -- то это не так уж и важно.
← →
apic © (2006-08-17 16:17) [4]Умоляю, товарищь сержант, скинте исходничик... Хоть с примерно... Я один находил, но после выполнения функции иконка у экзешника вообще исчезала (становилась как у консольной проги), но сам экзешник запускался, к сожалению на данный момент сам исходник уже наврядли найду...
← →
apic © (2006-08-17 16:20) [5]Мне нужно что то типа function ChangeExeIcon(fIcon{иконка которую будем вставлять}, fExe{экзешник в котором будем заменять}:string):boolean;
← →
Ketmar © (2006-08-17 16:34) [6]> [4] apic © (17.08.06 16:17)
а лень мне писать. подожди, может у кого-то есть. %-)
← →
apic © (2006-08-17 16:43) [7]Перекинте кто-нибудь на Делфи:
H = BeginUpdateResource(exepath, False)
Dim B() As Byte
ReDim B(0 To FileLen(icopath) - 1)
Open icopath For Binary As #1
Get #1, , B()
Close #1
Call UpdateResource(H, RT_ICON, 30001, 0, B(22), UBound(B) - 21)
Erase B
ReDim B(0 To FileLen(headerpath) - 1)
Open headerpath For Binary As #1
Get #1, , B()
Close #1
Call UpdateResource(H, RT_GROUP_ICON, 1, 0, B(0), 20)
Call EndUpdateResource(H, False)
← →
Ketmar © (2006-08-17 16:48) [8]> [7] apic © (17.08.06 16:43)
FreeBASIC? зачот. %-)
← →
apic © (2006-08-17 16:53) [9]Я не понял тебя, что таке "зачот. %-)". Ну я просто в васике пока не петрю...
← →
Ketmar © (2006-08-17 17:11) [10]> [9] apic © (17.08.06 16:53)
это значит "я видел сей компилятор и остался очень доволен его качеством, а также впечатлён стандартными библиотеками". видишь, как длинно получилось? %-)
← →
apic © (2006-08-17 17:11) [11]А может это под замену иконки переделать ктон-нибудь, как-нибудь сможет:
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.");
}
← →
ANTPro © (2006-08-17 17:34) [12]http://delphimaster.net/view/4-1155733452/
← →
apic © (2006-08-17 17:46) [13]var
hExe,hUpdateRes : tHandle;
hRes,hResLoad : hrSrc;
lpResLock : pointer;
begin
hExe := LoadLibrary(pansichar(application.exename));
hRes := FindResource(hExe, "todolist", "text");
hResLoad := LoadResource(hExe, hRes);
lpResLock := LockResource(hResLoad);
hUpdateRes := BeginUpdateResource("todo.exe", FALSE);
UpdateResource(hUpdateRes, "text", "todolist", LANG_NEUTRAL,
lpResLock, SizeofResource(hExe, hRes));
EndUpdateResource(hUpdateRes, FALSE);
FreeLibrary(hExe);
Что такое "todolist", "text". Как я понимаю это имена ресурсов, а как мне их узнать, если я заменяю иконку в случайном экзешнике???????????????
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.038 c