Hej
Jeg har en maskine som kører windows XP
På denne har jeg lavet en lille appl. som har to knapper.
Den ene åbner en fil sådan:
Tf1:='C:\test.m'+#0;
Th1:=Windows.CreateFile(@Tf1[1],
GENERIC_READ+GENERIC_WRITE,
FILE_SHARE_READ+FILE_SHARE_WRITE,
NIL,CREATE_ALWAYS,
FILE_FLAG_DELETE_ON_CLOSE+FILE_FLAG_WRITE_THROUGH,0);
if Th1<>INVALID_HANDLE_VALUE then
begin
Memo1.Lines.Add('Åbnet første gang ');
end
else
begin
Memo1.Lines.Add('Ikke Åbnet første gang ');
end;
Den bliver åbnet, og slettet efter lukning.
Den anden knap gør dette:
Tf1:='C:\test.m'+#0;
Th2:=Windows.CreateFile(@Tf1[1],
GENERIC_READ+GENERIC_WRITE,
FILE_SHARE_READ+FILE_SHARE_WRITE,
NIL,OPEN_EXISTING,
FILE_FLAG_WRITE_THROUGH,0);
if Th2<>INVALID_HANDLE_VALUE then
begin
Memo1.Lines.Add('Åbnet anden gang ');
end
else
begin
Memo1.Lines.Add('Ikke Åbnet anden gang ');
end;
Når den første bruger FILE_FLAG_DELETE_ON_CLOSE kan en anden ikke åbne den.
Men på en Windows 98 / ME maskine, kan den godt !
Så læste jeg i hjælpen, at jeg skulle bruge: FILE_SHARE_DELETE, men så
bliver den ikke slettet efter lukning.
Nogen der ved hvorfor ?
Michael
|