众所周知,C#以其高效的开发效率和完全面向对象的特性以及丰富的方法函数深受广大程序员的喜爱,因此拿来做界面非常快捷方便,而有很多涉及算法的核心程序又是用别的语言开发的(如C++),如何通过C#的界面窗体程序调用已有的控制台程序有很大的需求,这个需求都可以通过C#的Process类来实现,需要引用的名空间是System.Diagnostics,以下例子是现有一个控制台程序,调用的参数比较复杂,具体为DetectionWithShp.exe -ib c:\before.img -ia c:\after.img -s c:\tuban.shp -o output.shp,处理过程也比较久,会输出很多提示进度的信息在控制台,通过C#的界面,将-ib、-ia、-s、-o后面的参数以文件选择的方式读入,然后执行,并将控制台的进度信息实时输出至窗体的Listbox控件中。核心代码是对Process的使用:
为了设计一个结束被调用进程的按钮,把Process p = new Process();的定义放在frmMain()中,启动被调用程序的按钮响应代码如下:
private
void btnRun_Click
(object sender
, EventArgs e
)
{
string m_exename = Application.StartupPath + @ "\DetectionWithShp.exe" ;
string m_space = " " ;
string m_cmdLine ;
{
string m_exename = Application.StartupPath + @ "\DetectionWithShp.exe" ;
string m_space = " " ;
string m_cmdLine ;