如果用c#代码实现:运行——cmd——notepad,对找开的文本文件进行数据写入!
首先:
string patch = @"notepad.exe";
Process thepatch = new Process();
thepatch.StartInfo.FileName = patch;
thepatch.Start();
然后把内存信息写入文本文件中!
追问:我这样做的目的是不想先创建一个新文件,并且在保存的时候直接是另存为!
如果要是先创建一个新文件的时候,直接保存后,别人可能找不到该文件,成为垃圾文件!内存信息就是内存流
没有cmd直接 运行——notepad就可以了
答案:很容易实现。
首先你需要获得notpad的句柄,然后用WINAPI里面的sendmessage写入到记事本
首先添加引用
using System.Runtime.InteropServices;
调用方法如下:
[DllImport("User32.DLL")]
public static extern int SendMessage(IntPtr hWnd, uint Msg, int wParam, string lParam);
[DllImport("User32.DLL")]
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
public const uint WM_SETTEXT = 0x000C;
private void button1_Click(object sender, EventArgs e)
{
#region [ 启动记事本 ]
System.Diagnostics.Process Proc;
try
{
// 启动记事本
Proc = new System.Diagnostics.Process();
Proc.StartInfo.FileName = "notepad.exe";
Proc.StartInfo.UseShellExecute = false;
Proc.StartInfo.RedirectStandardInput = true;
Proc.StartInfo.RedirectStandardOutput = true;
Proc.Start();
}
catch
{
Proc = null;
}
#endregion
#region [ 传递数据给记事本 ]
if (Proc != null)
{
// 调用 API, 传递数据
while (Proc.MainWindowHandle == IntPtr.Zero)
{
Proc.Refresh();
}
IntPtr vHandle = FindWindowEx(Proc.MainWindowHandle, IntPtr.Zero, "Edit", null);
// 传递数据给记事本
SendMessage(vHandle, WM_SETTEXT, 0, "Message");
}
#endregion
}
其他:我不知道你为什么那么实现,但只是为了向文本文件写入数据的话,没有必要那么实现。
既然如此也不是没有办法实现,方法1:得到notepad的实例,并得到主窗口,向窗口发送文本消息(这种方法在vc下使用,在C#下如何操作,需要你自己查资料)
方法2:先向文件写入数据,然后再执行上面的代码,运行后效果差不多。 内存信息 ? 是什么意思
cmd 是干呢?
上一个:asp.net 什么编辑器好用,在线文本编辑器
下一个:asp.net中,怎么把动态生成的表格放在网页指定的位置