Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2013, 21:50   #1
Иван Мазько
Новичок
Джуниор
 
Регистрация: 25.02.2013
Сообщений: 3
По умолчанию Извлечение ресурсов на WinApi

Добрый день! Требуется помощь. Пытаюсь извлечь из ресурсов три файла. Компиляция проходит успешно. При запуске программы - файлы не извлекаются в нужную папку по директории C:\

За помощь заранее спасибо! Код представлен ниже:
Код:
program installfiles;
 
uses
  Classes;
 
{$R install.res}
 
procedure ExtractRes(ResType,ResName,ResNewName:String);
var Res:TResourceStream;
begin
 Res:=TResourceStream.Create(hInstance,Resname,Pchar(ResType));
 Res.SavetoFile(ResNewName);
 Res.Free;
end;
 
procedure Extract;
begin
   ExtractRes('EXEFILE','Index1','C:\1.dll');
   ExtractRes('EXEFILE','Index2','C:\2.sys');
   ExtractRes('EXEFILE','Index3','C:\3.exe');
  end;
end.
Внимание! Форма не используется чистый WinAPI
Иван Мазько вне форума Ответить с цитированием
Старый 25.02.2013, 22:05   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

У меня такое впечатление что ресурса EXEFILE не существует.
Проверь чем нибудь типа ResHacker.
Пожалуй я бы вкладывал файл в ячейку с типом RT_RCDATA
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.02.2013, 22:15   #3
Иван Мазько
Новичок
Джуниор
 
Регистрация: 25.02.2013
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
У меня такое впечатление что ресурса EXEFILE не существует.
Проверь чем нибудь типа ResHacker.
Пожалуй я бы вкладывал файл в ячейку с типом RT_RCDATA
Иван Мазько вне форума Ответить с цитированием
Старый 25.02.2013, 22:16   #4
Иван Мазько
Новичок
Джуниор
 
Регистрация: 25.02.2013
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Пожалуй я бы вкладывал файл в ячейку с типом RT_RCDATA
Подробнее...
Иван Мазько вне форума Ответить с цитированием
Старый 26.02.2013, 01:22   #5
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,767
По умолчанию

Должно быть что-то вроде
Код:
  ExtractRes(PChar(RT_RCDATA), 'EXE', 'C:\MyExe.exe');
Vapaamies вне форума Ответить с цитированием
Старый 26.02.2013, 01:30   #6
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
По умолчанию

Код:
uses Windows, Messages;

function ExtractToFile(ResType, ResName, ResNewName : PChar) : boolean;
var
  H  : THandle;
  LR : HGLOBAL;
  mem: Pointer;
  FH : THandle;
  wr : Cardinal;
begin
  H      := 0;
  Result := False;
  H := FindResource(HInstance, ResName, ResType);
  if (H = 0) then Exit;
  LR := LoadResource(HInstance, h);
  if (LR = 0) then Exit;
  mem := LockResource(LR);
  FH := CreateFile(ResNewName, GENERIC_WRITE, 0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL,0);
  if (FH = 0) then Exit;
  Result := WriteFile(FH, mem^, SizeofResource(HInstance, H), wr, nil);
  CloseHandle(FH);
  UnLockResource(LR);
end;
end.
Код:

 
procedure Extract;
begin
ExtractToFile('EXEFILE','Index1', 'C:\1.dll');
ExtractToFile('EXEFILE','Index2',C:\2.sys');
ExtractToFile('EXEFILE','Index3','C:\3.exe');
  end;
end.
Я так понял это драйвер?
Я бы с начало нашёл папку WINDOWS, а потом указал путь!


С уважением,
Volkogriz!
Не количеством плюсов измеряется репутация человека...!

Последний раз редактировалось Volkogriz; 26.02.2013 в 01:37.
Volkogriz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Различие кода mfc и WinApi(mfc ручками набили, а WinApi автоматически с генерировался!! нужно явное отличие, не могу найти) Артём1991 Помощь студентам 0 25.03.2012 17:13
Извлечение ресурсов в файл CYB3R Общие вопросы C/C++ 1 13.02.2012 00:23
Извлечение ресурсов? Ошибка EResNotFound taurii Общие вопросы Delphi 2 25.11.2011 15:33
меню без ресурсов WinAPI Paul_AG Win Api 5 05.10.2009 10:59
Извлечение ресурсов из бинарных файлов dimkin Общие вопросы Delphi 2 28.08.2009 17:06