200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 在C#中调用另一个应用程序或命令行(.exe 带参数)zz

在C#中调用另一个应用程序或命令行(.exe 带参数)zz

时间:2021-04-10 14:06:25

相关推荐

在C#中调用另一个应用程序或命令行(.exe 带参数)zz

在.net中使用system.diaglostics.Process可以用来调用另一个命令行或程序。

usingSystem.Diagnostics;

如果是dos

Process.Start("cmd.exe");

如果是其他文件

Process.Start("绝对路径+文件名.exe");

------------------------------------

如何在c#中调用外部dos程序?

使用Process对象:

System.Diagnostics.Processp=newSystem.Diagnostics.Process();

p.StartInfo.FileName="arj.exe";//需要启动的程序名

p.StartInfo.Arguments="-xsourceFile.Arjc:/temp";//启动参数

p.Start();//启动

if(p.HasExisted)//判断是否运行结束

p.kill();

-------------------------------------------------------------------------------------------------------------------------------------

///<summary>

///启动其他的应用程序

///</summary>

///<paramname="file">应用程序名称</param>

///<paramname="workdirectory">应用程序工作目录</param>

///<paramname="args">命令行参数</param>

///<paramname="style">窗口风格</param>

publicstaticboolStartProcess(stringfile,stringworkdirectory,stringargs,ProcessWindowStylestyle)

{

try

{

Processmyprocess=newProcess();

ProcessStartInfostartInfo=newProcessStartInfo(file,args);

startInfo.WindowStyle=style;

startInfo.WorkingDirectory=workdirectory;

myprocess.StartInfo=startInfo;

myprocess.StartInfo.UseShellExecute=false;

myprocess.Start();

returntrue;

}

catch(Exceptione0)

{

MessageBox.Show("启动应用程序时出错!原因:"+e0.Message);

}

returnfalse;

}

stringparms=""+GlobalObject.GetInstance().UserID+""+GlobalObject.GetInstance().UserPassword;

if(PublicMethods.StartProcess(Application.StartupPath+@"/uptool/uptool.exe",Application.StartupPath+"//UpTool",parms,ProcessWindowStyle.Normal))

{

Environment.Exit(0);

}

----------------------------------------------------------------------------------------------------------------------

Process.Start("IExplore.exe","");

System.Diagnostics.ProcessStartInfostartInfo=newSystem.Diagnostics.ProcessStartInfo();

startInfo.FileName="执行EXE的文件名";

startInfo.Arguments="参数数组";

System.Diagnostics.Process.Start(startInfo);

----------------------------------------------------------------------------------------------------------------------------

1.有好多时,我们需要调用外部的EXE程序,并且要等它运行完毕,我们才可以继续下面的动作,那我们怎样去实现了,请看以下代码.

'怎样等待外部程序运行完毕.

'从系统资料夹读入文件

DimsysFolderAsString=_

Environment.GetFoldERPath(Environment.SpecialFolder.System)

'创建一个新的进程结构

DimpInfoAsNewProcessStartInfo()

'设置其成员FileName为系统资料的Eula.txt

pInfo.FileName=sysFolder&"/eula.txt"

'运行该文件

DimpAsProcess=Process.Start(pInfo)

'等待程序装载完成

p.WaitForInputIdle()

'等待进行程退出

p.WaitForExit()

'继续执行下面的代码

MessageBox.Show("继续执行代码")

2.我们想在5秒钟后,强行关闭它.而不是需要我手工关闭.

'设置退出时间

DimtimeOutAsInteger=5000

DimsysFolderAsString=_

Environment.GetFolderPath(Environment.SpecialFolder.System)

DimpInfoAsNewProcessStartInfo()

pInfo.FileName=sysFolder&"/eula.txt"

DimpAsProcess=Process.Start(pInfo)

p.WaitForInputIdle()

p.WaitForExit(timeOut)

'检查是否在超时前已关闭了.

Ifp.HasExited=FalseThen

'进行程还在运行

'看进程有没有回应

Ifp.RespondingThen

p.CloseMainWindow()'关闭窗口

Else

p.Kill()'强行中断

EndIf

EndIf

MessageBox.Show("继续执行代码")

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。