我试图将会话日志从其他应用程序(Proxifier)记录到备忘录.
我尝试过使用命令:
我尝试过使用命令:
procedure TForm1.TimerTimer(Sender: TObject); begin Memo1.Lines.LoadFromFile('C:\PMASSH\Proxyfier\Profiles\Log.txt'); end;
但在某些时候我得到一个错误
你能解决我上面的问题吗?我真的很感激所有答案.
谢谢
解决方法
另一个程序使用共享模式打开文件,该模式不允许其他进程读取它.通常,当其他应用程序写入文件时会发生这种情况.
你可以做很多事情.这是完全正常的行为,是可以预期的.您可以尝试检测错误,等待一小段时间,然后重新尝试.
由于您已经在计时器上运行此功能,因此重试将会发生.所以也许你只需要压制这些例外:
procedure TForm1.TimerTimer(Sender: TObject); begin try Memo1.Lines.LoadFromFile(...); except on EFOpenError do ; //swallow this error end; end;
请注意,检测EFOpenError可能有点粗糙.也许还有其他失败模式会导致该错误.但是,作为第一遍,上面的代码是一个不错的开始.