【问题标题】:How to open and read contents from an unsaved file如何打开和读取未保存文件的内容
【发布时间】:2013-01-25 04:13:36
【问题描述】:

我想打开并读取一个尚未保存的文件。我想在 Windows 操作系统中使用 VC++ 或仅通过批处理文件来执行此操作。

如果我通过 fopen 或 fopen_s 的正常方法打开文件,文件将以上次保存的方式打开,这不是我想要的。我想要文件中存在但尚未保存的所有数据。

我已在此链接中阅读了有关此内容的内容。 Similar question。但我无法遵循脚本。有人可以把它转换成一批给我吗?

【问题讨论】:

  • 如果文件没有被保存,我看不出它是如何被打开和读取的,因为这意味着文件被读取之前它被写入.如果您想在另一个程序正在写入文件时将其读入一个程序,那么在两个进程之间使用pipe 可能会更好地满足您的需求?
  • 我无法使用管道,因为我无法控制将数据写入文件的过程。

标签: visual-c++ file-io


【解决方案1】:

我相信您的意思是从窗口或控件中读取内容。 只有在保存数据后才会生成文件。

要读取像记事本中的编辑控件这样的窗口内容,您首先必须获得控件的句柄。您可以使用FindWindow 来执行此操作,首先获取主窗口的句柄,然后在FindWindowEx 中使用它来获取编辑控件的句柄。

获得控件句柄后,您可以使用SendMessage 向其发送WM_GETTEXT 消息以读取其中包含的文本。

请注意,这可能不适用于所有应用程序。例如,MS-Word 使用富编辑控件,它有自己的方法来获取文本。

【讨论】:

  • 感谢您的回复。但问题是 FindWindow 仅适用于那些有窗口的应用程序。我的软件在后台写入记事本,不会以任何窗口的形式出现在前台。请问你能告诉我该怎么做吗?
  • 如果您的意思是记事本窗口不可见或隐藏,您仍然可以使用FindWindow
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-19
  • 2017-08-06
  • 1970-01-01
  • 2016-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多