15.2 ProcessStartInfo类
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。
ProcessStartInfo类配合Process类使用,它指定启动某个进程时使用的一些参数。
通常情况下,只需要设置ProcessStartInfo的FileName属性值(包括网址),操作系统自动会使用关联的程序打开该文件类型。
ProcessStartInfo常用属性:
- FileName:要启动的应用程序或文档。
- Arguments:启动应用程序时要使用的一组命令行参数。
- Verb:打开FileName属性时指定的动作,默认值为空字符串。通常每个文件除了打开之外还支持别的操作,例如txt、doc等常见文档支持“print”(打印)这个动作。支持的动作可以通过注册表查看,例如docx文档支持“Edit”、“New”、“OpenAsReadOnly”等:
图15-5 docx文档支持的动作
- ErrorDialog:指示不能启动进程时是否向用户显示错误对话框。
- WindowStyle:启动进程时使用的窗口状态。
- 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#教程 目录