Как отобразить содержимое из StreamReader прямо в блокноте?
-
23-08-2019 - |
Вопрос
Есть ли способ отобразить содержимое из памяти прямо в окне Блокнота?
Решение
Дважды щелкните файл и убедитесь, что для него выбрана связь «Блокнот».
Если вы хотите, чтобы Блокнот показывал его, не сохраняя на диск, вы можете открыть экземпляр Блокнота, получить дескриптор окна, а затем написать текст непосредственно туда.Для этого вам нужно будет использовать API-интерфейсы пользователя Windows.
Другие советы
Я предполагаю, что понимаю ваш вопрос.Если файл уже существует на компьютере, вы можете выполнить следующее:
System.Diagnostics.Process.Start( "notepad.exe", "[PATH]\[FILE].txt");
Если нет, сохраните файл локально, а затем запустите приведенный выше код.
Самый простой способ сделать это — сохранить файл и открыть его в блокноте, однако есть как минимум два других способа.
- Откройте «Блокнот», затем скопируйте то, что вы хотите, в буфер обмена, а затем с помощью DDE принудительно вставьте «Блокнот».Это плохо, поскольку потенциально перезаписывает то, что пользователь мог делать в буфере обмена.
- Второй способ предполагает получение дескриптора окна для элемента управления Edit блокнота, а затем выполнение WM_SETTEXT для окна.Однако это не будет работать вне границ привилегий (например, для приложений, которые запускаются от имени администратора, а блокнот запускается от имени обычного пользователя).Это также включает в себя переход на нативный уровень и выполнение P/Invoke.Не совсем простой метод.
Честно говоря, проще всего сохранить его в файл и загрузить.
Зачем вам блокнот, чтобы показать какое-то содержимое (которое находится в памяти)?
Если вы используете winforms, вы можете поместить его в текстовое поле.
Извините, если я не правильно понял ваш вопрос.
Я хотел бы добавить к ответу г-на Эдмундо, что Изолированное хранилище это подходящее место для хранения временного текстового файла для Блокнота.