Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.09.08;
Скачать: [xml.tar.bz2];

Вниз

Как сохранить ЕХЕ файл из ресурса на харде?   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
3-24303
Fants
2003-08-18 11:19
2003.09.08
TUPDateSQL


1-24531
Eagle Owl
2003-08-26 20:02
2003.09.08
Число в шестнадцатеричном формате...


3-24377
Дмитрий Бессонов
2003-08-15 18:59
2003.09.08
Восстановление данных


1-24481
DelphiNew
2003-08-27 13:31
2003.09.08
Error


3-24313
Buka
2003-08-14 22:52
2003.09.08
Locate в ADO? Работает ли?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский