Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
1-24451
Coolguy
2003-08-28 09:14
2003.09.08
TListView с разноцветными Items в режиме vsReport


3-24376
NewD
2003-08-16 11:33
2003.09.08
странное поведение QuickReport


8-24552
bkv
2003-05-12 11:35
2003.09.08
Отличия Device Dependent Bitmap от Device Independent Bitmap?


1-24440
KSergey
2003-08-26 08:48
2003.09.08
Вопрос про DLL и свойство Application.Handle


4-24743
VD601
2003-07-07 16:34
2003.09.08
Кто ловит WM_QUIT?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский