当前位置: 首页 > news >正文

15.2 ProcessStartInfo类

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。

ProcessStartInfo类配合Process类使用,它指定启动某个进程时使用的一些参数。

通常情况下,只需要设置ProcessStartInfo的FileName属性值(包括网址),操作系统自动会使用关联的程序打开该文件类型。

ProcessStartInfo常用属性:

  1. FileName:要启动的应用程序或文档。
  2. Arguments:启动应用程序时要使用的一组命令行参数。
  3. Verb:打开FileName属性时指定的动作,默认值为空字符串。通常每个文件除了打开之外还支持别的操作,例如txt、doc等常见文档支持“print”(打印)这个动作。支持的动作可以通过注册表查看,例如docx文档支持“Edit”、“New”、“OpenAsReadOnly”等:

图15-5 docx文档支持的动作

  1. ErrorDialog:指示不能启动进程时是否向用户显示错误对话框。
  2. WindowStyle:启动进程时使用的窗口状态。
  3. UseShellExecute:指示是否使用操作系统命令行程序启动进程。

注意:所有的设置应在启动进程前完成,进程启动后更改设置是不会起作用的。

【例 15.4【项目:code15-004】使用ProcessStartInfo设置进程启动参数。

        //使用默认浏览器打开网址

        private void button1_Click(object sender, EventArgs e)

        {

            ProcessStartInfo psi = new ProcessStartInfo("http://www.csdn.net");

            Process.Start(psi);

        }

        //为文本文件使用print动作

        private void button2_Click(object sender, EventArgs e)

        {

            ProcessStartInfo psi = new ProcessStartInfo("c:\\lessons\\将进酒.txt");

            //当文件不能打开时弹出错误提示框

            psi.ErrorDialog = true;

            //动词为print

            psi.Verb = "print";

            Process.Start(psi);

        }

第2个按钮按照notepad提供的Verb(print)使用记事本打开文本文件并开始打印。

【例 15.5【项目:code15-005】监视进程运行。

请在窗体上放置一个Button控件、一个TextBox控件和一个Timer组件。Timer组件的Interval 属性设置为100(0.1秒)。具体代码如下:

        //监视进程运行

        Process psNotepad;

        private void button1_Click(object sender, EventArgs e)

        {

            ProcessStartInfo psi = new ProcessStartInfo("C:\\lessons\\赤壁怀古.txt");

            psNotepad = Process.Start(psi);

            timer1.Start();

        }

        private void timer1_Tick(object sender, EventArgs e)

        {

            //检查进程是否退出

            if( psNotepad.HasExited)           

            {

                textBox1.Text += DateTime.Now.ToShortTimeString() + " 停止运行" + "\r\n";

                //如果进程退出则获取进程退出的时间

                textBox1.Text += "退出时间:" + psNotepad.ExitTime.ToShortTimeString() + "\r\n";

                timer1.Stop();

            }

            else

                textBox1.Text += DateTime.Now.ToShortTimeString() + " 正在运行" + "\r\n";

        }

运行结果如下图所示:

图15-6 获取进程终止时间

学习更多vb.net知识,请参看vb.net 教程 目录

学习更多C#知识,请参看C#教程 目录

相关文章:

  • 浏览器Cookies、SessionStorage 和 LocalStorage
  • RL--2
  • 机器学习:十大算法实现汇总
  • 组件库地址
  • 神经网络新手入门(3)光明顶复出(2006-2012)
  • 每日OJ_牛客_Pre-Post(英文题树的遍历_排列组合)
  • Linux下的Python开发环境
  • 动态规划part7|198. 打家劫舍、213.打家劫舍II、337.打家劫舍III
  • Ruby 文件的输入与输出
  • 深入理解 JVM 的栈帧结构
  • [JVM篇]分代垃圾回收
  • 记忆力训练day19
  • C语言中qsort函数使用技巧
  • AI预测福彩3D新模型百十个定位预测+胆码预测+杀和尾+杀和值2025年2月16日第8弹
  • Versal - 基础5(裸机开发 AIE-ML+Vitis2024.2界面aie report介绍)
  • 关于conda换镜像源,pip换源
  • SpringBoot速成(11)更新用户头像,密码P13-P14
  • 八.工控之视觉专题
  • pandas(13 Caveats Gotchas和SQL比较)
  • 【Three.js】JS 3D library(一个月进化史)
  • 世界高血压日|专家:高血压患者控制血压同时应注重心率管理
  • 上海公办小学验证今起开始,下周一和周二分区进行民办摇号
  • 国际金价下跌,中概股多数上涨,穆迪下调美国主权信用评级
  • 美叙领导人25年来首次会面探索关系正常化,特朗普下令解除对叙经济制裁
  • 马上评|“衣服越来越难买”,对市场是一个提醒
  • 西安市未央区委书记刘国荣已任西咸新区党工委书记