Текущий архив: 2003.09.08;
Скачать: CL | DM;
Вниз
Как сохранить ЕХЕ файл из ресурса на харде? Найти похожие ветки
← →
electric (2003-08-25 14:35) [0]Как сохранить ЕХЕ файл из ресурса на харде?
← →
HolACost! (2003-08-25 14:56) [1]TResourceStream - если прямо в лоб и на Дельфи!
← →
N169 (2003-08-25 14:57) [2]Извиняюсь что на Це++, но идея будет понятна:
В файле .rc:
175 DOCUMENTS DISCARDABLE "mylib.dll"
176 DOCUMENTS DISCARDABLE "myexe.exe"
В приложении:
PCHAR resid[] = { "mylib.dll", "#175",
"myexe.exe", "#176",
NULL,NULL };
// Извлекает файлы из ресурсов
void ExtractInstallFiles(void)
{
AnsiString AppDir = ExtractFilePath(Application->ExeName);
AnsiString FileName = "";
HRSRC hres;
ULONG size,cb;
PUCHAR ptr;
ULONG index = 0;
HANDLE hfile;
while (resid[index])
{
hres = FindResource(NULL,resid[index+1],"DOCUMENTS");
size = SizeofResource(NULL,hres);
ptr = (PUCHAR)LoadResource(NULL,hres);
if (ptr)
{
FileName = AppDir + AnsiString(resid[index]);
hfile = CreateFile(FileName.c_str(),GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_AT TRIBUTE_NORMAL,NULL);
WriteFile(hfile,ptr,size,&cb,NULL);
CloseHandle(hfile);
};
index += 2;
};
};
← →
electric (2003-08-25 15:21) [3]Я не проф. Мне сложно так врубится по одному слову =( или на другом языке. Дайте примерчик!
← →
HolACost! (2003-08-25 15:25) [4]А что нажать F1 не судьба?
To All: пример откудато скоммунизденый (уверен, что все права в резерве)
procedure TForm1.ExtractRes(ResType, ResName, ResNewName : String);
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, Resname, RT_VERSION);
Res.SavetoFile(ResNewName);
Res.Free;
end;
← →
HolACost! (2003-08-25 15:26) [5]Вместо RT_VERSION надо ResType
← →
electric (2003-08-25 15:56) [6]не работает если ResType ! да и ваще никак не работает! может обясните попонятнее, а то совсем я запутался =(
← →
HolACost! (2003-08-25 16:07) [7]Клиника, дорогой мой!
Я думал догадаешься, как поправить!
procedure TForm1.ExtractRes(ResType, ResName, ResNewName : String);
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, Resname, PChar(ResType));
Res.SavetoFile(ResNewName);
Res.Free;
end;
Вызов
ExtractRes("Version", "#1", "c:\ver.txt");
PS:
Ты хоть знаешь, как ресурсы выглядят? Как они структурированы?
← →
electric (2003-08-25 19:49) [8]нет не знаю как они выглядят и как они структурированы. Поэтому я так и не сделал эту прогу =( скажи что обозначает "Version", "#1", "c:\ver.txt"
← →
electric (2003-08-25 20:05) [9]нет не знаю как они выглядят и как они структурированы. Поэтому я так и не сделал эту прогу =( скажи что обозначает "Version", "#1", "c:\ver.txt"
Страницы: 1 вся ветка
Текущий архив: 2003.09.08;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.007 c