用C#打开记事本,并且给记事本添加内容

#region [ API: 记事本 ]

        
/// <summary>
        
/// 传递消息给记事本
        
/// </summary>
        
/// <param name="hWnd"></param>
        
/// <param name="Msg"></param>
        
/// <param name="wParam"></param>
        
/// <param name="lParam"></param>
        
/// <returns></returns>
        [DllImport("User32.DLL")]
        
public static extern int SendMessage(IntPtr hWnd, uint Msg, int wParam, string lParam);

        
/// <summary>
        
/// 查找句柄
        
/// </summary>
        
/// <param name="hwndParent"></param>
        
/// <param name="hwndChildAfter"></param>
        
/// <param name="lpszClass"></param>
        
/// <param name="lpszWindow"></param>
        
/// <returns></returns>
        [DllImport("User32.DLL")]
        
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);

        
/// <summary>
        
/// 记事本需要的常量
        
/// </summary>
        public const uint WM_SETTEXT = 0x000C;

        
#endregion

        
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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值