When I click a button on a Windows Forms form, I would like to open a Notepad window containing the text from a TextBox control on the form.
How can I do that?
6. How to start Notepad with a keyboard shortcut. From now on, anytime I want to open Notepad on my computer, all I have to do is press Ctrl + Alt + N.
You can open any solution, project, folder or file in Notepad++ by simply right-clicking it in Solution Explorer and select Open in Notepad++.
You don't need to create file with this string. You can use P/Invoke to solve your problem.
Usage of NotepadHelper class:
NotepadHelper.ShowMessage("My message...", "My Title");
NotepadHelper
class code:
using System; using System.Runtime.InteropServices; using System.Diagnostics; namespace Notepad { public static class NotepadHelper { [DllImport("user32.dll", EntryPoint = "SetWindowText")] private static extern int SetWindowText(IntPtr hWnd, string text); [DllImport("user32.dll", EntryPoint = "FindWindowEx")] private static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow); [DllImport("User32.dll", EntryPoint = "SendMessage")] private static extern int SendMessage(IntPtr hWnd, int uMsg, int wParam, string lParam); public static void ShowMessage(string message = null, string title = null) { Process notepad = Process.Start(new ProcessStartInfo("notepad.exe")); if (notepad != null) { notepad.WaitForInputIdle(); if (!string.IsNullOrEmpty(title)) SetWindowText(notepad.MainWindowHandle, title); if (!string.IsNullOrEmpty(message)) { IntPtr child = FindWindowEx(notepad.MainWindowHandle, new IntPtr(0), "Edit", null); SendMessage(child, 0x000C, 0, message); } } } } }
References (pinvoke.net and msdn.microsoft.com):
SetWindowText: pinvoke | msdn
FindWindowEx: pinvoke | msdn
SendMessage: pinvoke | msdn
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With