在.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","http://www.newhappy.cn");
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("继续执行代码")
分享到:
相关推荐
三个C#应用程序源代码.rar三个C#应用程序源代码.rar三个C#应用程序源代码.rar三个C#应用程序源代码.rar三个C#应用程序源代码.rar三个C#应用程序源代码.rarv
C#窗体内嵌外部程序(cmd.exe)的显示C#窗体内嵌外部程序(cmd.exe)的显示
C# 让程序带参数运行,如:app.exe -a -c C# 让程序带参数运行,如:app.exe -a -c C# 让程序带参数运行,如:app.exe -a -c C# 让程序带参数运行,如:app.exe -a -c C# 让程序带参数运行,如:app.exe -a -c
C#调用带参数EXE文件及带启动参数EXE制作
使用如下命令行导出.cs文件protogen.exe -i:Request.proto -o:Request.cs 可以看到在同目录下生成了一个Request.cs文件,这个我们想要导出的.cs类文件
代码里面的Default.rdp文件(和可执行程序在同一个目录)也可以远程连接Linux主机(需要把session bpp:i设置为24),如果是连windows主机的话可以把session bpp:i:设置成32。当然,也可以自己生成Default.rdp:打开...
C#Web应用程序入门经典_程序设计 相关电子书 ,网页好帮手
使用C#开发数据库应用程序.笔试试题.doc使用C#开发数据库应用程序.笔试试题.doc使用C#开发数据库应用程序.笔试试题.doc使用C#开发数据库应用程序.笔试试题.doc使用C#开发数据库应用程序.笔试试题.doc使用C#开发...
【精品教程】C#__Windows应用程序设计基础.ppt
c#+web应用程序入门经典.pdf,很好、很经典,值得一读!
在C#中调用条码标签打印机中的动态链接库PPLAPPLB_Argox.txt
C# 应用程序配置文件 App.Config VS2008 ConfigurationManager的Demo
此代码功能是设置应用程序 只是允许开启一个.EXE 并最前端显示 可以保持程序之前的状态。例如,之前最大化,当你最小化后,在开启新的应用程序 程序会最前段保持最大化显示
求2到任意的整数之间的素数.....只输入一个任意的整数就有结果.... 是用C#写的窗体应用程序...适合与做作业....很不错的哦..........
一个基于C#技术实现的命令行工具源程序代码,该工具采用C#+VS2005开发实现,可以通过命令方式实现对后台执行程序代码的动作解析操作。
让VB编写的程序也能从外部接收指令并运行。如:c:\text.exe "我收到了你的指令",弹出"我收到了你的指令
C# WInForm窗体嵌入外部EXE程序
不是源代码,只是一个小TXT文件,很简短,但是四两拨千斤
C# web应用程序入门经典.
C#是一个语言,.net是一个平台,上面支持用C#或者VBdotNet写代码。 另外,C#不但可以开发基于.net的应用程序,也可以开发基于WinForm的程序,这就是区别。 若是单纯以概念来说,你可以把.net当做一个工作平台一般,...