在windows应用程序中创建文本文件
本文关键字:文本 文件 创建 windows 应用程序 | 更新日期: 2023-09-27 18:29:14
我想打开一个文本文件并向该文件写入一些数据。这是我的代码:
FileStream fs1 = new FileStream("D:''Yourfile.txt", FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter writer = new StreamWriter(fs1);
writer.Write("Hello");
writer.Close();
System.Diagnostics.Process.Start(@"D:''Yourfile.txt");
此代码运行良好。但这里首先保存文件。我想要一个文本文件与数据一起打开,并让用户保存文本文件。有可能吗?
如果我理解正确,您希望您的程序打开记事本并在其中放入一些文本。然后,用户将决定是否保存文件。
如果是这种情况,您可以使用Process
类来启动记事本。一旦你做到了,你就可以触发一系列键盘事件(模仿按键),这样你就有了文本。
话虽如此,我认为一个更干净的解决方案是打开一个单独的带有文本区域/文本框的表单,这样用户就可以通读了。然后,有一个名为Save
的按钮,它本质上做你已经在做的事情。
尝试这将解决您的问题
[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 button6_Click(object sender, EventArgs e)
{
Process[] notepads = Process.GetProcessesByName("notepad");
if (notepads.Length == 0)
{
Process.Start(@"notepad.exe");
Thread.Sleep(100);
}
notepads = Process.GetProcessesByName("notepad");
// return;
if (notepads[0] != null)
{
IntPtr child = FindWindowEx(notepads[0].MainWindowHandle, new IntPtr(0), "Edit", null);
SendMessage(child, 0x000C, 0, "Hello");
}
}
如果您希望用户为文件提供文本,那么构建一个带有单个文本框的Windows窗体。让用户键入他们想要的任何内容,完成后,执行以下操作:
File.WriteAllText(pathToFile, textBox.Text);