zoukankan      html  css  js  c++  java
  • 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
    
            }
    View Code
  • 相关阅读:
    字符串前面加@
    SQL字段类型bit 查询时注意
    SELECT IDENT_CURRENT(tableName)和自增长列的纠结
    解析xml文件 selectSingleNode取不到节点
    【.NET】.NET MVC4 微信扫一扫功能实现附全部代码
    未定义对象
    C# Web开发中弹出对话框的函数[转载]
    json序列化和反序列化
    jq的$.each()方法
    学习URLRewriter.dll的使用
  • 原文地址:https://www.cnblogs.com/-hwh/p/13303824.html
Copyright © 2011-2022 走看看