1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| #include <stdio.h>
#include <windows.h>
void main ()
{
HANDLE hExe; // handle to existing .EXE file
HRSRC hRes; // handle/ptr to res. info.
HRSRC hResLoad; // handle to loaded resource
HANDLE hUpdateRes; // handle to update resource
char * lpResLock; // pointer to resource data
BOOL result1,result2;
// charger calc.exe dont je veux copier l'icône
hExe = LoadLibrary("C:\\Borland\\BCC55\\essais\\ess_win\\calc.exe");
printf("\nLoadLibrary - hExe = %i ", hExe);
// localiser l'icône n°1 dans calc.exe
hRes = FindResource(hExe, "#1", RT_ICON);
printf("\nFindResource - hRes = %i ", hRes);
// charger l'icône en mémoire
hResLoad = LoadResource(hExe,hRes);
printf("\nLoadResource - hResLoad = %i ", hResLoad);
// la verrouiller en mémoire
lpResLock = LockResource(hResLoad);
printf("\nLockResource - lpResLock = %i ", lpResLock);
// ouvrir winmine dont je veux substituer (!) l'icône par celle de calc
hUpdateRes = BeginUpdateResource("C:\\Borland\\BCC55\\essais\\ess_win\\winmine.exe", FALSE);
printf("\nBeginUpdateResource - hUpdateRes = %i ", hUpdateRes);
// modifier l'icône n°1 de winmine
result1 = UpdateResource
(
hUpdateRes,
RT_ICON,
"1",
1036,
lpResLock,
SizeofResource(hExe,hRes)
);
printf("\nUpdateResource - result1 = %i ", result1);
// écrire les changements dans winmine et fermer
result2 = EndUpdateResource(hUpdateRes, FALSE);
printf("\nEndUpdateResource - result2 = %i ", result2);
// nettoyage
FreeLibrary(hExe);
} |
Partager