打开新的 notepad.exe 并向其中写入内容
open new notepad.exe and write content to it
我想启动一个新的记事本实例并从我的桌面应用程序 (WPF) 向其中写入内容。之后,用户可以自行决定是否保存文件。 (我知道我可以使用 System.Diagnostics.Process.Start("notepad.exe")
启动新的记事本实例)
就像有人想要手动创建一个 .txt 文件的过程一样。他首先从开始菜单打开记事本。然后写点东西然后保存到想要的文件夹。
可能吗?
试试这个source
[DllImport("user32.dll", EntryPoint = "FindWindowEx")]
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
[DllImport("User32.dll")]
public static extern int SendMessage(IntPtr hWnd, int uMsg, int wParam, string lParam);
private void button1_Click(object sender, EventArgs e)
{
Process [] notepads=Process.GetProcessesByName("notepad");
if(notepads.Length==0)return;
if (notepads[0] != null)
{
IntPtr child= FindWindowEx(notepads[0].MainWindowHandle, new IntPtr(0), "Edit", null);
SendMessage(child, 0x000C, 0, textBox1.Text);
}
}
我想启动一个新的记事本实例并从我的桌面应用程序 (WPF) 向其中写入内容。之后,用户可以自行决定是否保存文件。 (我知道我可以使用 System.Diagnostics.Process.Start("notepad.exe")
启动新的记事本实例)
就像有人想要手动创建一个 .txt 文件的过程一样。他首先从开始菜单打开记事本。然后写点东西然后保存到想要的文件夹。
可能吗?
试试这个source
[DllImport("user32.dll", EntryPoint = "FindWindowEx")]
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
[DllImport("User32.dll")]
public static extern int SendMessage(IntPtr hWnd, int uMsg, int wParam, string lParam);
private void button1_Click(object sender, EventArgs e)
{
Process [] notepads=Process.GetProcessesByName("notepad");
if(notepads.Length==0)return;
if (notepads[0] != null)
{
IntPtr child= FindWindowEx(notepads[0].MainWindowHandle, new IntPtr(0), "Edit", null);
SendMessage(child, 0x000C, 0, textBox1.Text);
}
}