如果用c#代码实现:运行——cmd——notepad,对找开的文本文件进行数据写入!

首先:stringpatch=@"notepad.exe";Processthepatch=newProcess();thepatch.StartInfo.FileNam... 首先:
string patch = @"notepad.exe";
Process thepatch = new Process();
thepatch.StartInfo.FileName = patch;
thepatch.Start();
然后把内存信息写入文本文件中!
展开
 我来答
Tomwalle
2012-09-05 · TA获得超过1173个赞
知道大有可为答主
回答量:1278
采纳率:100%
帮助的人:1045万
展开全部
很容易实现。
首先你需要获得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
}
townsin
2012-09-04 · TA获得超过452个赞
知道小有建树答主
回答量:594
采纳率:50%
帮助的人:503万
展开全部
我不知道你为什么那么实现,但只是为了向文本文件写入数据的话,没有必要那么实现。
既然如此也不是没有办法实现,方法1:得到notepad的实例,并得到主窗口,向窗口发送文本消息(这种方法在vc下使用,在C#下如何操作,需要你自己查资料)
方法2:先向文件写入数据,然后再执行上面的代码,运行后效果差不多。
追问
我这样做的目的是不想先创建一个新文件,并且在保存的时候直接是另存为!
如果要是先创建一个新文件的时候,直接保存后,别人可能找不到该文件,成为垃圾文件!
追答
你最好把你的原始需求说一下,否则的话不好回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友94f02eb
2012-09-05 · TA获得超过8612个赞
知道大有可为答主
回答量:7955
采纳率:74%
帮助的人:4375万
展开全部
内存信息 ? 是什么意思

cmd 是干呢?
追问
内存信息就是内存流
没有cmd直接 运行——notepad就可以了
追答
  第一步: 引入命名空间
  using System.Runtime.InteropServices;
  using System.Diagnostics;

  第二步: 声明Windows API(放在 class 内)
  [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;

  第三步: 添加一个按钮,在按钮的点击事件中,写入下面的代码
  Process vProcess = Process.Start("notepad.exe");
  While (vProcess.MainWindowHandle == IntPtr.Zero) vProcess.Refresh();
  IntPtr vHandle = FindWindowEx(vProcess.MainWindowHandle, IntPtr.Zero, "Edit", null);
  SendMessage(vHandle, WM_SETTEXT, 0, "写入的内容");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式