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

Вниз

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

 
}|{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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.01.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.01 c
14-12064
MONA
2003-12-07 14:13
2004.01.05
а разве можно войти в инет под XP


1-11961
ЮрийК
2003-12-19 15:15
2004.01.05
Юникод строки и VCL-контролы


3-11824
Nikolas_Spock
2003-12-10 01:42
2004.01.05
Delphi7 + SQL


8-11999
XAli
2003-08-30 09:12
2004.01.05
сигнал заданной частоты и длительности на саунд


3-11810
alienka
2003-12-08 18:08
2004.01.05
adoQuery проблема с update данных





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