【问题标题】:How to get a content of file which is being written by an application?如何获取应用程序正在写入的文件内容?
【发布时间】:2014-09-28 10:03:19
【问题描述】:

当您激活一个功能时,此应用程序总是会创建一个文件(比如说,一个日志文件)。该文件在运行期间无法打开 - 但我需要在应用程序关闭之前它的内容(另一个进程使用它,所以我什至无法查看它)。有没有办法以某种方式“挂钩”它?

我正在使用 Delphi,但我接受任何其他解决方案。 所以,总而言之,我需要知道应用程序创建了什么文件(它总是创建其他文件,但在同一个目录中)以及它编写的内容。任何帮助表示赞赏。

【问题讨论】:

  • 您应该更改写入文件的应用程序。它需要共享文件进行阅读,而不是使用独占共享模式。
  • 它是一个已经完成的 exe 文件,我无法更改任何内容
  • 那么你就不走运了,除非你想真的弄脏并执行硬盘的低级读取(只能在本地驱动器上工作,需要您知道磁盘的磁盘格式,并且您知道如何仅使用低级扇区读取来导航磁盘)。
  • OR(也是脏的)挂钩到操作系统或应用程序并修改应用程序的 CreateFile 调用以以读取兼容模式打开文件。
  • 如果你把其他程序整理出来就更好了。与其开发者交谈。

标签: delphi winapi file-io process hook


【解决方案1】:

我找到了解决方法:

复制文件,并对克隆的文件进行操作:

http://www.howtogeek.com/howto/windows-vista/backupcopy-files-that-are-in-use-or-locked-in-windows/

【讨论】:

  • 如果有API,Delphi也可以做
猜你喜欢
  • 2013-03-07
  • 2012-02-19
  • 2017-06-09
  • 1970-01-01
  • 2012-08-31
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多