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
  • 相关阅读:
    SynchronousQueue 的联想
    Spring Cache
    CSUOJ 1011 Counting Pixels
    CSUOJ 1973 给自己出题的小X DFS
    CSUOJ 1726 你经历过绝望吗?两次!BFS+优先队列
    CSUOJ 1900 锋芒不露
    CSUOJ 1808 地铁
    CSUOJ 1895 Apache is late again
    CSUOJ 1781 阶乘除法
    CSUOJ 1560 图书管理员的表白方式
  • 原文地址:https://www.cnblogs.com/-hwh/p/13303824.html
Copyright © 2011-2022 走看看