| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4694 人关注过本帖
标题:C#如何在控件按钮上连接打开一个记事本或者其他文本文件
只看楼主 加入收藏
labiandy
Rank: 1
等 级:新手上路
帖 子:7
专家分:3
注 册:2009-9-20
结帖率:0
收藏
已结贴  问题点数:5 回复次数:5 
C#如何在控件按钮上连接打开一个记事本或者其他文本文件
我是个新手,想知道如何在控件按钮上连接打开一个记事本或者其他文本文件,还有就是如何学习C#中自带的超级多的类,比如如何找出想实现某种功能的方法,我指的是在窗口编程中。
搜索更多相关主题的帖子: 控件 文本文件 记事本 按钮 
2009-09-24 20:57
jedypjd
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1096
专家分:4969
注 册:2009-7-27
收藏
得分:1 
        #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
         }


天涯无岁月,歧路有风尘,百年浑似醉,是非一片云
2009-09-25 00:27
havelook
Rank: 1
等 级:新手上路
帖 子:73
专家分:2
注 册:2008-12-10
收藏
得分:1 
Process.Start("notepad.exe");
2009-09-25 14:49
pencil_010
Rank: 1
等 级:新手上路
帖 子:3
专家分:2
注 册:2009-8-19
收藏
得分:1 
我觉得楼主没说清楚,到底是想打开nodepad应用程序还是想打开文本文件?

一般用System.Diagnostics.Process.Start(filename)就可以了吧
2009-09-26 05:08
labiandy
Rank: 1
等 级:新手上路
帖 子:7
专家分:3
注 册:2009-9-20
收藏
得分:0 
回复 3楼 havelook
我指的是:比方说按一个按钮会弹出一个以Text格式的文件,并且将我从TextBox中输入的内容输出来
2009-09-26 17:39
labiandy
Rank: 1
等 级:新手上路
帖 子:7
专家分:3
注 册:2009-9-20
收藏
得分:0 
回复 3楼 havelook
System.Diagnostics.Process.Start(www.baidu.com)这里是不是只能是网址之类的还是可以用文件的绝对路径,还是可以直接用文件名
2009-09-26 17:46
快速回复:C#如何在控件按钮上连接打开一个记事本或者其他文本文件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016973 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved