Ładowanie zawartości pliku do Memo - plik używany przez inny proces

2011-10-30 16:01

Rejestracja: 8 lat temu

Ostatnio: 8 lat temu

0

Cześć.
Mam problem z moją aplikacją.
Program ma za zadanie pobrać zawartość pliku C:\WINDOWS\pfirewall.log do kompontentu memo.

procedure TForm3.Button1Click(Sender: TObject);
begin
  Memo1.Lines.Loadfromfile('C:\WINDOWS\pfirewall.log');
end;

Problem w tym że w określonych sytuacjach systemowy proces svchost.exe korzysta z tego pliku, przez co nie mogę pobrać zawartości.

Cannot open file "C:\WINDOWS\pfirewall.log". Proces nie może uzyskać dostępu do pliku, ponieważ jest on używany przez inny proces.
Co najciekawsze notatnik może korzystać z tego pliku. Na razie rozwiązałem problem za pomocą API (otwieranie w notatniku tego pliku).
Jak to rozwiązać?

edytowany 1x, ostatnio: madmike, 2011-10-30 16:07

Pozostało 580 znaków

2011-10-30 16:17

Rejestracja: 8 lat temu

Ostatnio: 8 lat temu

0
Patryk27 napisał(a)

Na razie rozwiązałem problem za pomocą API (otwieranie w notatniku tego pliku).

Co ma jedno do drugiego?

?
Tak to chwilowo rozwiązałem.

procedure TForm1.Button4Click(Sender: TObject);
begin
ShellExecute(Handle,'open', 'c:\windows\notepad.exe','c:\windows\pfirewall.log', nil, SW_SHOWNORMAL) ;
end;

Poszukam jeszcze w googlach o tym.

Pozostało 580 znaków

2011-10-30 22:01

Rejestracja: 16 lat temu

Ostatnio: 7 lat temu

procedure TForm3.Button2Click(Sender: TObject);
var
  fs: TFileStream;
begin
  fs := TFileStream.Create('f:\obrazy\test.log', fmOpenRead);
  try
    memo1.Lines.LoadFromStream(fs);
  finally
    fs.Free;
  end;
end;

- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2011-10-31 14:29

Rejestracja: 8 lat temu

Ostatnio: 8 lat temu

0

To samo :(, pliku nie ładuje. Jak ten notatnik robi że otworzyć może, a mój program nie może?
Rozwiązałem przez... skopiowanie pliku i otwarcie go we własnej lokalizacji. Może być, bo i tak w przyszłości to się przyda :)

edytowany 1x, ostatnio: gienekr, 2011-10-31 14:45

Pozostało 580 znaków

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0