首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 我想在一个页面中点击按钮打开记事本,并填写点数据
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • qcdn
    • 等级:
    发表于:2008-06-12 16:36:20 楼主
    我想在一个页面中点击按钮打开记事本,并填写点数据

    我之前找了篇文章,尝试了下:

    #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.StartInfo.RedirectStandardError = true;
                    Proc.StartInfo.CreateNoWindow = 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, c);
                }

                #endregion

    但是,点击按钮操作后CPU 100% w3wp占的,但是通过调试状态就可以打开这个记事本,不知道是为什么,有人有好的方法吗?以上代码只是粘贴了一部分,引用“User32.DLL”的语句没都贴出来,编译是能通过的,调试可以运行,但是在IIS里,就打不开记事本,还占用CPU 100%
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-13 22:12:001楼 得分:0
    (using)System.Diagnostics.Process p = new System.Diagnostics.Process();
    p.StartInfo.FileName = "notepad.exe";
    p.StartInfo.WorkingDirectory = @"c:\windows\system32\"; //你的记事本的路径
    p.StartInfo.CreateNoWindow = true;
    p.StartInfo.UseShellExecute = false;
    p.Start();


    using能自动释放资源
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-13 22:20:542楼 得分:0
    明显是资源没有被释放!
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved