Hallo,
auf/in einem über USB angeschlossenen Gerät wird eine Textdatei (Log-Datei) ausgelesen und in einem TMemo angezeigt.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var FIn : System.Text;
Line: string;
begin
Memo1.Lines.Clear;
{$I-}
System.AssignFile(FIn, FileListBox1.FileName);
System.Reset(FIn);
{$I+}
if System.IOResult = 0 then
begin
while not(EoF(Fin)) do
begin
System.Readln(FIn, Line);
Memo1.Lines.Add(Line);
end;
System.CloseFile(FIn);
end;
end;
Diese Textdatei wird ausschließlich vom USB-Gerät selbst manipuliert (verändert), auf PC-Seite soll diese Datei immer nur lesend geöffnet werden.
Problem: Windows bekommt eine Aktualisierung nicht mit und auch wenn ich wie oben geschrieben die Datei immer wieder neu öffne und schließe, so ist der mir angezeigte Inhalt derselbe. Ziehe ich hingegen das Gerät ab und wieder an, kann ich eine aktualisierte Datei einlesen.
Dieser Effekt tritt übrigens nicht nur bei meinem Beispielprogramm auf, sondern auch beim Windows Explodierer trotz drücken von F5.
Scheinbar bekommt Windows eine Aktualisierung nicht mit außer die Datei wird von Windows aus verändert.
Frage: Gibt es ggf. eine (
API-) Befehl, der Windows zur Aktualisierung zwingt?
Dank vorab und Gruß, Carsten
Nachtrag: Das Gerät meldet sich als HID an und bekommt von Windows einen Laufwerksbuchstaben verpasst.