当前位置:编程学习 > C#/ASP.NET >>

如果用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中,怎么把动态生成的表格放在网页指定的位置

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,