进程
为了深刻描述程序动态执行过程的性质,人们引入“进程(Process)”概念。
进程的概念主要有两点:
第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。
第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。
使用进程,首先引入命名空间using System.Diagnostics;
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace jincheng { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
//进程的写法:Process.Start(所要开启的程序),写在点击事件里面,一点击执行进程打开*** private void button1_Click(object sender, EventArgs e) { //Process.Start("calc");//开启计算器进程 Process.Start("iexplore","http://www.baidu.com");//打开IE浏览器,并打开指定网址 }
//如果不确定要打开的程序的注册名,可以通过对话框控件中的选择本地文件本地文件控件,在文件中找到应用程序,直接通过打开路径打开程序 private void button2_Click(object sender, EventArgs e) { openFileDialog1.Filter = "应用程序|*.exe";//打开文件对话框中打开文件所规定的文件类型 DialogResult dr = openFileDialog1.ShowDialog();//打开文件对话框 if(dr==DialogResult.OK)//如果用户点击确定 { textBox1.Text = openFileDialog1.FileName;//文本框的内容就是打开文件的绝对路径 } } private void button3_Click(object sender, EventArgs e) { Process p = new Process();//实例化process这个类 ProcessStartInfo pro = new ProcessStartInfo(textBox1.Text);//启动进程时使用的一组值 p.StartInfo = pro;//将p启动进程指向pro中的文件路径 try { p.Start(); } catch { MessageBox.Show("打开文件有误!"); } } } }