0

有没有办法直接在记事本窗口中显示内存中的内容?

4

5 回答 5

3

我假设我理解你的问题。如果该文件已经存在于机器上,您可以执行以下操作:

System.Diagnostics.Process.Start( "notepad.exe", "[PATH]\[FILE].txt");

如果没有,则将文件保存在本地,然后运行上述代码。

于 2009-02-16T09:08:48.570 回答
1

双击该文件,确保关联设置为记事本。

如果您希望记事本显示它而不将其保存到磁盘,您可以打开一个记事本实例,获取窗口句柄,然后将文本直接写入其中。您将需要使用 Windows 用户 API 来执行此操作。

于 2009-02-16T09:08:03.267 回答
1

完成此操作的最简单方法是保存文件并在记事本中打开它,但至少还有两种其他方法。

  1. 打开记事本,然后将您想要的内容复制到剪贴板,然后使用 DDE 强制记事本进行粘贴。这很糟糕,因为它可能会覆盖用户可能在剪贴板中所做的事情。
  2. 第二种方法涉及获取记事本编辑控件的窗口句柄,然后对窗口执行 WM_SETTEXT。但是,这不会跨越权限边界(例如对于以管理员身份运行但记事本以普通用户身份运行的应用程序)。这还涉及降低到本机级别并执行 P/Invokes。不完全是一个简单的方法。

坦率地说,将其保存到文件并加载它是最简单的。

于 2009-02-16T09:27:50.940 回答
0

为什么需要记事本来显示一些内容(在内存中)?

如果你使用的是winforms,你可以把它放在一个文本框中。
抱歉,如果我没有正确理解您的问题。

于 2009-02-16T09:18:11.837 回答
0

我想补充一下 MrEdmundo 的回答,即独立存储是存储记事本临时 txt 文件的正确位置。

于 2009-02-16T09:23:46.647 回答