Как отобразить содержимое из StreamReader прямо в блокноте?

StackOverflow https://stackoverflow.com/questions/552671

  •  23-08-2019
  •  | 
  •  

Вопрос

Есть ли способ отобразить содержимое из памяти прямо в окне Блокнота?

Это было полезно?

Решение

Дважды щелкните файл и убедитесь, что для него выбрана связь «Блокнот».

Если вы хотите, чтобы Блокнот показывал его, не сохраняя на диск, вы можете открыть экземпляр Блокнота, получить дескриптор окна, а затем написать текст непосредственно туда.Для этого вам нужно будет использовать API-интерфейсы пользователя Windows.

Другие советы

Я предполагаю, что понимаю ваш вопрос.Если файл уже существует на компьютере, вы можете выполнить следующее:

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

Если нет, сохраните файл локально, а затем запустите приведенный выше код.

Самый простой способ сделать это — сохранить файл и открыть его в блокноте, однако есть как минимум два других способа.

  1. Откройте «Блокнот», затем скопируйте то, что вы хотите, в буфер обмена, а затем с помощью DDE принудительно вставьте «Блокнот».Это плохо, поскольку потенциально перезаписывает то, что пользователь мог делать в буфере обмена.
  2. Второй способ предполагает получение дескриптора окна для элемента управления Edit блокнота, а затем выполнение WM_SETTEXT для окна.Однако это не будет работать вне границ привилегий (например, для приложений, которые запускаются от имени администратора, а блокнот запускается от имени обычного пользователя).Это также включает в себя переход на нативный уровень и выполнение P/Invoke.Не совсем простой метод.

Честно говоря, проще всего сохранить его в файл и загрузить.

Зачем вам блокнот, чтобы показать какое-то содержимое (которое находится в памяти)?

Если вы используете winforms, вы можете поместить его в текстовое поле.
Извините, если я не правильно понял ваш вопрос.

Я хотел бы добавить к ответу г-на Эдмундо, что Изолированное хранилище это подходящее место для хранения временного текстового файла для Блокнота.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top