Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.05;
Скачать: CL | DM;

Вниз

Ресурсы   Найти похожие ветки 

 
}|{yk ©   (2003-11-03 16:40) [0]

Никто не сохранял настройки проги в самой проге (в ресурсах)?
UpdateResource,LockResource etc?
Если пробовал, киньте исходник, плз


 
Nick Denry ©   (2003-11-03 18:44) [1]

Не настройки конечно, но посмотреть есть на что:
unit Main;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, AppEvnts, ComCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
OpenDialog1: TOpenDialog;
procedure Button1Click(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
UpdateFile:Hfile;

vir : array of Char;
mem : cardinal;
tmp: pointer;

resfile,myfile:hfile;
str:ofstruct;
wd,wdd:dword;
result: cardinal;
i:integer;

{f : file of pointer;
m : array of pointer;}

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin
{vir := nil;}

{mem:=GlobalAlloc(GMEM_FIXED,463872);

tmp:=GlobalLock(mem);
button1.Caption:=inttostr(GlobalSize(mem));
if mem=0 then ShowMessage("GlobalAlloc error") else showmessage("GlobalAlloc done");}

{AssignFile(F, "runs.exe");
Reset(F);
SetLength(m, FileSize(F));
wd:=FileSize(F);
BlockRead(F, m[0],wd );
CloseFile(F); }

{data:=vir;}
{AssignFile(f,"runs.exe");
Reset(f);
Seek(f,0);
BlockRead(f,tmp,512);
closefile(f); }

{wd:=463872;
wdd:=0;
Resfile:=OpenFile("Runs.exe",str,of_read);
Wd:=GetFileSize(resfile,nil);
Form1.Caption:=IntToStr(wd);
ReadFile(resfile,tmp^,wd,wdd,nil);

MyFile:=CreateFile("1.txt",GENERIC_WRITE ,FILE_SHARE_WRITE,nil,
CREATE_Always,FILE_ATTRIBUTE_NORMAL,0);
WriteFile(MyFile,tmp^,wd,wdd,nil);}
OpenDialog1.Execute;
If OpenDialog1.FileName<>"" then begin

UpdateFile:=BeginUpdateResource(PCHAR(OpenDialog1.fileName),false);
ShowMessage("UpdateFile");
UpdateResource(UpdateFile,RT_RCDATA,PChar(Edit1.Text),0,nil,0);
EndUpdateResource(UpdateFile,false);
ShowMessage("UpdateResource");
end
else ShowMessage("NofileToDo");

{if res=false then showmessage("res ok") else begin showmessage("res fail");
ShowMessage(IntToStr(GetLastError));
end;}

{GlobalUnlock(mem);
result:=GlobalFree(mem);
if result=0 then showmessage("all ok") else messagebeep(mb_iconhand);}

end;

end.



 
}|{yk ©   (2003-11-03 18:50) [2]

Что это за константа такая 463872, не подскажите?


 
Nick Denry ©   (2003-11-03 18:53) [3]

Wd:=GetFileSize(resfile,nil); и 463872 - одно и то же - размер записываемого файла...


 
Suntechnic ©   (2003-11-03 20:30) [4]

Да в "самой проге" несколько проблематично будет. Выдержка из MSDN

pFileName
[in] Pointer to a null-terminated string that specifies the executable file in which to update resources. An application must be able to obtain write access to this file; it cannot be currently executing.


 
}|{yk ©   (2003-11-04 12:25) [5]

Т.е. программа не может писать сама в себя? А в dll можно ресурсы записывать?


 
Игорь Шевченко ©   (2003-11-04 13:09) [6]

Если DLL не загружена, то можно, иначе нельзя.



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

Текущий архив: 2004.01.05;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.038 c
6-12031
MakNik
2003-10-30 11:53
2004.01.05
Отправка SMS-оповещений в автоматическом режиме


14-12086
Shaman
2003-12-15 15:14
2004.01.05
Дельфей под Win32 больше делать не будут.


14-12131
DeMoN-777
2003-12-12 22:17
2004.01.05
Голосовой чат


1-11872
ruslan_as
2003-12-15 11:51
2004.01.05
Помогите посчитать часы


14-12153
фффффффффффффффф
2003-12-11 19:23
2004.01.05
тесты